summaryrefslogtreecommitdiff
path: root/mysys/my_seek.c
diff options
context:
space:
mode:
authorKristofer.Pettersson@naruto. <>2006-10-09 21:13:37 +0200
committerKristofer.Pettersson@naruto. <>2006-10-09 21:13:37 +0200
commit3b316569a731b971af4564a01bd4b5602df654f2 (patch)
tree9dfccd2afeed2f6beb74f168a7fbf2434e0d61dc /mysys/my_seek.c
parentd1fb415ad4617ec20077446c762450ae0369e3ca (diff)
downloadmariadb-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/my_seek.c')
-rw-r--r--mysys/my_seek.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mysys/my_seek.c b/mysys/my_seek.c
index 8035312496d..006d0013695 100644
--- a/mysys/my_seek.c
+++ b/mysys/my_seek.c
@@ -29,8 +29,13 @@ my_off_t my_seek(File fd, my_off_t pos, int whence,
whence, MyFlags));
DBUG_ASSERT(pos != MY_FILEPOS_ERROR); /* safety check */
- if (-1 != fd)
- newpos=lseek(fd, pos, whence);
+ /*
+ Make sure we are using a valid file descriptor!
+ */
+ DBUG_ASSERT(fd != -1);
+
+ newpos= lseek(fd, pos, whence);
+
if (newpos == (os_off_t) -1)
{
my_errno=errno;