diff options
author | Kristofer.Pettersson@naruto. <> | 2006-10-09 21:13:37 +0200 |
---|---|---|
committer | Kristofer.Pettersson@naruto. <> | 2006-10-09 21:13:37 +0200 |
commit | 3b316569a731b971af4564a01bd4b5602df654f2 (patch) | |
tree | 9dfccd2afeed2f6beb74f168a7fbf2434e0d61dc /mysys/mf_iocache.c | |
parent | d1fb415ad4617ec20077446c762450ae0369e3ca (diff) | |
download | mariadb-git-3b316569a731b971af4564a01bd4b5602df654f2.tar.gz |
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_chache function call and this led my_seek to be called despite 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.
Diffstat (limited to 'mysys/mf_iocache.c')
-rw-r--r-- | mysys/mf_iocache.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c index cd2a140182e..eb8b992c601 100644 --- a/mysys/mf_iocache.c +++ b/mysys/mf_iocache.c @@ -333,7 +333,11 @@ my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type, { info->read_end=info->write_pos; info->end_of_file=my_b_tell(info); - info->seek_not_done=1; + /* + Trigger a new seek only if we have a valid + file handle. + */ + info->seek_not_done= (info->file != -1); } else if (type == WRITE_CACHE) { |