From: Sascha Schumann Date: Thu, 30 Jan 2003 21:11:29 +0000 (+0000) Subject: Partial MFH: Fix sticky eof issue, and avoid calling system stat macro X-Git-Tag: php-4.3.2RC1~373 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6eb3a0ff12e301fd14295545b58c148f930a9ba5;p=php Partial MFH: Fix sticky eof issue, and avoid calling system stat macro --- diff --git a/main/streams.c b/main/streams.c index 74b95bf94b..c30240d4be 100755 --- a/main/streams.c +++ b/main/streams.c @@ -516,8 +516,7 @@ static void php_stream_fill_read_buffer(php_stream *stream, size_t size TSRMLS_D if (stream->writepos - stream->readpos < (off_t)size) { size_t justread = 0; - if (stream->eof) - return; + /* ignore eof here; the underlying state might have changed */ /* no; so lets fetch more data */ @@ -576,7 +575,8 @@ PHPAPI size_t _php_stream_read(php_stream *stream, char *buf, size_t size TSRMLS didread += toread; } - if (size == 0 || stream->eof) { + /* ignore eof here; the underlying state might have changed */ + if (size == 0) { break; } @@ -674,7 +674,7 @@ PHPAPI int _php_stream_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_D return -1; } - return stream->ops->stat(stream, ssb TSRMLS_CC); + return (stream->ops->stat)(stream, ssb TSRMLS_CC); } PHPAPI char *php_stream_locate_eol(php_stream *stream, char *buf, size_t buf_len TSRMLS_DC)