diff options
author | unknown <sergefp@mysql.com> | 2005-10-28 23:31:32 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2005-10-28 23:31:32 +0400 |
commit | 81882f7127b9d52cd46c92006e1a2231a70c8849 (patch) | |
tree | 9303ffec88f27b8195b9e023a8cb898af6e3ee1b /myisam | |
parent | 5e8515d9f2ccada3e19b109196fb5654e7c9db92 (diff) | |
download | mariadb-git-81882f7127b9d52cd46c92006e1a2231a70c8849.tar.gz |
Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment,
do advance the source pointer over 2 bytes that specify value length.
myisam/mi_key.c:
Fix for BUG#13814: in mi_pack_key(), when processing NULL value for TINYBLOB key segment,
do advance the source pointer over 2 bytes that specify value length (for NULL value the
format is: null_marker 0x01, value length 0x00 0x00, data: 0x00 keyseg->length times).
We need to advance over 2 bytes separately as keyseg->length doesn't include them.
mysql-test/r/myisam.result:
Testcase for BUG#13814
mysql-test/t/myisam.test:
Testcase for BUG#13814
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_key.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/myisam/mi_key.c b/myisam/mi_key.c index 9df22889b22..f4b92f969db 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -217,7 +217,10 @@ uint _mi_pack_key(register MI_INFO *info, uint keynr, uchar *key, uchar *old, { k_length-=length; if (keyseg->flag & (HA_VAR_LENGTH | HA_BLOB_PART)) + { + old+= 2; k_length-=2; /* Skip length */ + } continue; /* Found NULL */ } } |