diff options
Diffstat (limited to 'main/streams/streams.c')
-rw-r--r-- | main/streams/streams.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c index b1099b6fcc..19d08c7978 100644 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -24,6 +24,7 @@ #define _GNU_SOURCE #include "php.h" #include "php_globals.h" +#include "php_memory_streams.h" #include "php_network.h" #include "php_open_temporary_file.h" #include "ext/standard/file.h" @@ -709,8 +710,10 @@ PHPAPI size_t _php_stream_read(php_stream *stream, char *buf, size_t size) break; } - /* just break anyway, to avoid greedy read */ - if (!stream->wrapper || stream->wrapper->is_url) { + /* just break anyway, to avoid greedy read for file://, php://memory, and php://temp */ + if ((stream->wrapper != &php_plain_files_wrapper) && + (stream->ops != &php_stream_memory_ops) && + (stream->ops != &php_stream_temp_ops)) { break; } } |