From: Ulrich Drepper Date: Tue, 9 Nov 2004 07:04:08 +0000 (+0000) Subject: (_IO_new_file_seekoff): If mode is 0 and fp->_offset == _IO_pos_BAD, just call _IO_SY... X-Git-Tag: cvs/fedora-glibc-20041110T0839~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eca29725d15f200f3eb8b106bb7bac3fb687fa74;p=thirdparty%2Fglibc.git (_IO_new_file_seekoff): If mode is 0 and fp->_offset == _IO_pos_BAD, just call _IO_SYSSEEK (fp, 0, dir) and if successful set fp->_offset. --- diff --git a/libio/fileops.c b/libio/fileops.c index 08eff0a08e6..2d787d296f9 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -989,7 +989,18 @@ _IO_new_file_seekoff (fp, offset, dir, mode) /* Adjust for read-ahead (bytes is buffer). */ offset -= fp->_IO_read_end - fp->_IO_read_ptr; if (fp->_offset == _IO_pos_BAD) - goto dumb; + { + if (mode != 0) + goto dumb; + else + { + result = _IO_SYSSEEK (fp, 0, dir); + if (result == EOF) + return result; + + fp->_offset = result; + } + } /* Make offset absolute, assuming current pointer is file_ptr(). */ offset += fp->_offset; if (offset < 0)