summaryrefslogtreecommitdiff
path: root/main/streams
diff options
context:
space:
mode:
authorMichael Wallner <mike@php.net>2014-04-02 15:36:39 +0200
committerMichael Wallner <mike@php.net>2014-04-02 15:36:39 +0200
commit1ec83d44a1601c3560f430e08af9698bf8fb075c (patch)
tree5a9e27c8134049c112fcd497d968afd8065c6ba3 /main/streams
parent91a9d24aa30507e6c7d8937db2de24394f0ce121 (diff)
downloadphp-git-1ec83d44a1601c3560f430e08af9698bf8fb075c.tar.gz
Fixed bug #61019 (Out of memory on command stream_get_contents)
Diffstat (limited to 'main/streams')
-rw-r--r--main/streams/streams.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c
index cac50ef03f..acc67dc207 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -736,6 +736,10 @@ PHPAPI size_t _php_stream_read(php_stream *stream, char *buf, size_t size TSRMLS
if (!stream->readfilters.head && (stream->flags & PHP_STREAM_FLAG_NO_BUFFER || stream->chunk_size == 1)) {
toread = stream->ops->read(stream, buf, size TSRMLS_CC);
+ if (toread == (size_t) -1) {
+ /* e.g. underlying read(2) returned -1 */
+ break;
+ }
} else {
php_stream_fill_read_buffer(stream, size TSRMLS_CC);