diff options
author | unknown <monty@hundin.mysql.fi> | 2001-11-22 13:50:50 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-11-22 13:50:50 +0200 |
commit | d576cd65d00d23b634e0ef4254660e67c055c045 (patch) | |
tree | 8c1d3e9b787e1017fce3c9e905b829557889f97a /myisam/mi_packrec.c | |
parent | 5975e2364942dfcf8bca2fcc8e3107b16dd2fa46 (diff) | |
download | mariadb-git-d576cd65d00d23b634e0ef4254660e67c055c045.tar.gz |
Fix bug when repairing compressed MyISAM files
LOCATE() is now case sensitive
BUILD/compile-alpha-cxx:
Don't build manager because it fails with linker error on Linux Alpha
Docs/manual.texi:
Changelog
myisam/mi_check.c:
Fix bug when repairing compressed MyISAM files
myisam/mi_open.c:
Fix bug when repairing compressed MyISAM files
myisam/mi_packrec.c:
Fix bug when repairing compressed MyISAM files
myisam/myisamchk.c:
Fix bug when repairing compressed MyISAM files
myisam/myisamdef.h:
Fix bug when repairing compressed MyISAM files
mysql-test/r/func_group.result:
Fix result for new RND function
mysql-test/r/func_math.result:
Fix result for new RND function
mysql-test/r/func_str.result:
test of new locate()
mysql-test/t/func_str.test:
test of new locate()
sql/item_func.cc:
LOCATE() is now case sensitive
sql/sql_string.cc:
LOCATE() is now case sensitive
sql/sql_string.h:
LOCATE() is now case sensitive
Diffstat (limited to 'myisam/mi_packrec.c')
-rw-r--r-- | myisam/mi_packrec.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/myisam/mi_packrec.c b/myisam/mi_packrec.c index 31be2113c20..00e2c05ef5e 100644 --- a/myisam/mi_packrec.c +++ b/myisam/mi_packrec.c @@ -785,7 +785,10 @@ static void decode_bytes(MI_COLUMNDEF *rec,MI_BIT_BUFF *bit_buff,uchar *to, if (bits <= 32) { if (bit_buff->pos > bit_buff->end+4) + { + bit_buff->error=1; return; /* Can't be right */ + } bit_buff->current_byte= (bit_buff->current_byte << 32) + ((((uint) bit_buff->pos[3])) + (((uint) bit_buff->pos[2]) << 8) + @@ -829,7 +832,8 @@ static void decode_bytes(MI_COLUMNDEF *rec,MI_BIT_BUFF *bit_buff,uchar *to, #else -static void decode_bytes(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *to, uchar *end) +static void decode_bytes(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *to, + uchar *end) { reg1 uint bits,low_byte; reg3 uint16 *pos; @@ -846,7 +850,10 @@ static void decode_bytes(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *to, uc if (bits < table_bits) { if (bit_buff->pos > bit_buff->end+1) + { + bit_buff->error=1; return; /* Can't be right */ + } #if BITS_SAVED == 32 bit_buff->current_byte= (bit_buff->current_byte << 24) + (((uint) ((uchar) bit_buff->pos[2]))) + |