summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2002-10-12 02:56:34 +0000
committerWez Furlong <wez@php.net>2002-10-12 02:56:34 +0000
commit4308a399b97d5e060ec099a9636d1f3639b8430e (patch)
treee199bad070c1537c5ccec205db08287cc3b464e9
parentac950497a6eebc90062cce6f8cc7b9080ecc09bd (diff)
downloadphp-git-4308a399b97d5e060ec099a9636d1f3639b8430e.tar.gz
paranoia
-rwxr-xr-xmain/streams.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/main/streams.c b/main/streams.c
index a39a6c0a89..218170c0e0 100755
--- a/main/streams.c
+++ b/main/streams.c
@@ -464,6 +464,9 @@ static void php_stream_fill_read_buffer(php_stream *stream, size_t size TSRMLS_D
/* is there enough data in the buffer ? */
if (stream->writepos - stream->readpos < (off_t)size) {
size_t justread = 0;
+
+ if (stream->eof)
+ return;
/* no; so lets fetch more data */
@@ -522,7 +525,7 @@ PHPAPI size_t _php_stream_read(php_stream *stream, char *buf, size_t size TSRMLS
didread += toread;
}
- if (size == 0) {
+ if (size == 0 || stream->eof) {
break;
}
@@ -721,6 +724,8 @@ PHPAPI char *_php_stream_gets(php_stream *stream, char *buf, size_t maxlen TSRML
if (done) {
break;
}
+ } else if (stream->eof) {
+ break;
} else {
/* XXX: Should be fine to always read chunk_size */
size_t toread = maxlen - 1;