summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authoringo/mydev@chilla.local <>2006-07-29 21:58:50 +0200
committeringo/mydev@chilla.local <>2006-07-29 21:58:50 +0200
commiteddb73b3653334d925643e588802cbe86dcd27a5 (patch)
treeb42dfd70ebe2ad04b956a88dd77cebfc08dbd45d /myisam
parentdf78ef6357293ffbbbbef7d2f8c03938c067aa13 (diff)
downloadmariadb-git-eddb73b3653334d925643e588802cbe86dcd27a5.tar.gz
Bug#20719 - Reading dynamic records with write buffer could fail
After merge fix
Diffstat (limited to 'myisam')
-rw-r--r--myisam/mi_dynrec.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/myisam/mi_dynrec.c b/myisam/mi_dynrec.c
index 51f2ff349f8..4dec3055fa1 100644
--- a/myisam/mi_dynrec.c
+++ b/myisam/mi_dynrec.c
@@ -1141,6 +1141,9 @@ int _mi_read_dynamic_record(MI_INFO *info, my_off_t filepos, byte *buf)
block_info.second_read= 0;
do
{
+ /* A corrupted table can have wrong pointers. (Bug# 19835) */
+ if (filepos == HA_OFFSET_ERROR)
+ goto panic;
if (info->opt_flag & WRITE_CACHE_USED &&
info->rec_cache.pos_in_file < filepos + MI_BLOCK_INFO_HEADER_LENGTH &&
flush_io_cache(&info->rec_cache))