summaryrefslogtreecommitdiff
path: root/main/streams/streams.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/streams/streams.c')
-rw-r--r--main/streams/streams.c7
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;
}
}