summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-04-02 19:06:03 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-04-02 19:06:03 +0300
commit198094ec0eee377fc391fc365bcf5d22f7702717 (patch)
tree2f3b0a994ccf06b24ca4ab7444e875d5358ec878
parent5f3501a6e59a6a2e7e3d8b6d8bd0f3cee2474c6d (diff)
downloadmariadb-git-198094ec0eee377fc391fc365bcf5d22f7702717.tar.gz
MDEV-22108 Recovery fails with InnoDB: Malformed log record
mtr_t::log_write(): Fix an off-by-one error.
-rw-r--r--storage/innobase/include/mtr0log.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/storage/innobase/include/mtr0log.h b/storage/innobase/include/mtr0log.h
index d07fa069dfd..ee823caf6cb 100644
--- a/storage/innobase/include/mtr0log.h
+++ b/storage/innobase/include/mtr0log.h
@@ -427,7 +427,7 @@ inline byte *mtr_t::log_write(const page_id_t id, const buf_page_t *bpage,
if (oend + len > &log_ptr[16])
{
len+= oend - log_ptr - 15;
- if (len >= MIN_3BYTE)
+ if (len >= MIN_3BYTE - 1)
len+= 2;
else if (len >= MIN_2BYTE)
len++;
@@ -448,7 +448,7 @@ inline byte *mtr_t::log_write(const page_id_t id, const buf_page_t *bpage,
else if (len >= 3 && end + len > &log_ptr[16])
{
len+= end - log_ptr - 15;
- if (len >= MIN_3BYTE)
+ if (len >= MIN_3BYTE - 1)
len+= 2;
else if (len >= MIN_2BYTE)
len++;