Commit 9dd5bc38 authored by ingo@mysql.com's avatar ingo@mysql.com
Browse files

Bug#19835 - Binary copy of corrupted tables crash the server when issuing a query

A corrupt table with dynamic record format can crash the 
server when trying to select from it.
        
I fixed the crash that resulted from the particular type 
of corruption that has been reported for this bug.

No test case. To test it, one needs a table with a very special
corruption. The bug report contains a file with such a table.
parent ffd8ed17
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1116,6 +1116,9 @@ int _mi_read_dynamic_record(MI_INFO *info, my_off_t filepos, byte *buf)
	  info->rec_cache.pos_in_file <= block_info.next_filepos &&
	  flush_io_cache(&info->rec_cache))
	goto err;
      /* A corrupted table can have wrong pointers. (Bug# 19835) */
      if (block_info.next_filepos == HA_OFFSET_ERROR)
        goto panic;
      info->rec_cache.seek_not_done=1;
      if ((b_type=_mi_get_block_info(&block_info,file,
				     block_info.next_filepos))