1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Bug#23010 _my_b_read() passing illegal file handles to my_seek()

- The io cache flag seek_not_done was not set properly in the 
  reinit_io_cache function call and this led my_seek to be called
  desipite an invalid file handle.
- Added a test in reinit_io_cache to ensure we have a valid file 
  handle before setting seek_not_done flag.


mysys/mf_iocache.c:
  Added a test to only trigger my_seek function calls if we have
  a valid file descriptor.
mysys/my_seek.c:
  Refactored incomplete condition into an assertion. This also ensures
  that variable newpos is initialized properly.
This commit is contained in:
unknown
2006-11-06 11:41:52 +01:00
parent 626abc5205
commit 51a360a005
2 changed files with 10 additions and 1 deletions

View File

@ -313,7 +313,11 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type,
if (info->type == READ_CACHE)
{
info->write_end=info->write_buffer+info->buffer_length;
info->seek_not_done=1;
/*
Trigger a new seek only if we have a valid
file handle.
*/
info->seek_not_done= (info->file >= 0);
}
info->end_of_file = ~(my_off_t) 0;
}