Fixed bug #31036: Using order by with archive table crashes server.
1. Memory overrun have been fixed. 2. Server failure on assertion has been fixed. storage/archive/azio.c: Fixed bug #31036. The ha_archive::rnd_pos function has been modified to take into account the result of the azseek function and to return HA_ERR_CRASHED_ON_USAGE in case of seek error. storage/archive/ha_archive.cc: Fixed bug #31036. 1. Memory overrun has been fixed: maximal sizes of azio_stream::inbuf and azio_stream::outbuf was mixed. 2. Zero value of the output parameter of the azread function was incorrectly interpreted by the azseek function: after the first successful read attempt the execution of the azseek loop was interrupted and negative value was returned. (See ha_archive::rnd_pos: that negative value was silently ignored, and an incomplete data was used, for example, as a size of a packed record, and server failed with the assertion: "row_len <= record_buffer->length".) mysql-test/t/archive.test: Added test case for bug #31036. mysql-test/r/archive.result: Added test case for bug #31036.
Showing
Please register or sign in to comment