From fe8b4d98e9ac371238388469cb74011cb2120343 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Thu, 4 Dec 2014 08:13:28 +0530 Subject: Reset cached offset when reading to end of stream (BZ #17653) POSIX allows applications to switch file handles when a read results in an end of file. Unset the cached offset at this point so that it is queried again. --- libio/wfileops.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libio/wfileops.c') diff --git a/libio/wfileops.c b/libio/wfileops.c index 71281c1e5d..2a003b368d 100644 --- a/libio/wfileops.c +++ b/libio/wfileops.c @@ -257,7 +257,10 @@ _IO_wfile_underflow (fp) if (count <= 0) { if (count == 0 && naccbuf == 0) - fp->_flags |= _IO_EOF_SEEN; + { + fp->_flags |= _IO_EOF_SEEN; + fp->_offset = _IO_pos_BAD; + } else fp->_flags |= _IO_ERR_SEEN, count = 0; } -- cgit v1.2.3