diff options
author | unknown <Kristofer.Pettersson@naruto.> | 2006-10-17 10:53:53 +0200 |
---|---|---|
committer | unknown <Kristofer.Pettersson@naruto.> | 2006-10-17 10:53:53 +0200 |
commit | e7274571e07ad00611b799e7bb2043b7891c77e2 (patch) | |
tree | cca615d25b12f5c9912c735db040fe91a4080f8b /mysys | |
parent | 1e8c450dea260fb3827f0d79a214c969b4abd571 (diff) | |
parent | c6a67e69331762f1e9e2ba725cb418c4d87a8a27 (diff) | |
download | mariadb-git-e7274571e07ad00611b799e7bb2043b7891c77e2.tar.gz |
Merge naruto.:C:/cpp/bug23010/my50-bug23010
into naruto.:C:/cpp/mysql-5.0-maint
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/mf_iocache.c | 6 | ||||
-rw-r--r-- | mysys/my_seek.c | 9 |
2 files changed, 12 insertions, 3 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) { 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; |