From 52c05130838fffe3a5e0f9605d09c4462bae814f Mon Sep 17 00:00:00 2001 From: marko <> Date: Wed, 19 Sep 2007 09:05:16 +0000 Subject: [PATCH] branches/zip: rec_init_offsets(): Fix a bug that was introduced in r1518: Correctly handle node pointer records containing variable-length columns with two-byte length. --- rem/rem0rec.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rem/rem0rec.c b/rem/rem0rec.c index 58b7f12df23..e4a81343272 100644 --- a/rem/rem0rec.c +++ b/rem/rem0rec.c @@ -411,11 +411,16 @@ rec_init_offsets( == DATA_BLOB)) { if (len & 0x80) { /* 1exxxxxxx xxxxxxxx */ + len <<= 8; len |= *lens--; - ut_a(len <= 0x3fff); - offs += len; + /* B-tree node pointers + must not contain externally + stored columns. Thus + the "e" flag must be 0. */ + ut_a(!(len & 0x4000)); + offs += len & 0x3fff; len = offs; goto resolved;