From: Michael Wallner Date: Thu, 20 Apr 2006 17:52:01 +0000 (+0000) Subject: MFB: Fix reading stream filters never notified about EOF X-Git-Tag: RELEASE_1_3~24 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=54ff84d3d5e7421ca7a265cc8a3350ab1ab37e1e;p=php MFB: Fix reading stream filters never notified about EOF --- diff --git a/main/streams/streams.c b/main/streams/streams.c index aaa8c7307f..3a8d25b6e3 100755 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -440,7 +440,7 @@ static void php_stream_fill_read_buffer(php_stream *stream, size_t size TSRMLS_D /* allocate a buffer for reading chunks */ chunk_buf = emalloc(stream->chunk_size); - while (!err_flag && (stream->writepos - stream->readpos < (off_t)size)) { + while (!stream->eof && !err_flag && (stream->writepos - stream->readpos < (off_t)size)) { size_t justread = 0; int flags; php_stream_bucket *bucket; @@ -449,7 +449,7 @@ static void php_stream_fill_read_buffer(php_stream *stream, size_t size TSRMLS_D /* read a chunk into a bucket */ justread = stream->ops->read(stream, chunk_buf, stream->chunk_size TSRMLS_CC); - if (justread != (size_t)-1) { + if (justread && justread != (size_t)-1) { bucket = php_stream_bucket_new(stream, chunk_buf, justread, 0, 0 TSRMLS_CC); /* after this call, bucket is owned by the brigade */