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;