From 07546496b13e35105dae8e1c168d8356f2dd849d Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Wed, 5 Oct 2016 14:54:06 +0200 Subject: [PATCH] Fix bug #73037, second round --- ext/standard/php_fopen_wrapper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c index ac434ce071e..af08c3401d4 100644 --- a/ext/standard/php_fopen_wrapper.c +++ b/ext/standard/php_fopen_wrapper.c @@ -90,7 +90,11 @@ static size_t php_stream_input_read(php_stream *stream, char *buf, size_t count } } - php_stream_seek(input->body, input->position, SEEK_SET); + if (!input->body->readfilters.head) { + /* If the input stream contains filters, it's not really seekable. The + input->position is likely to be wrong for unfiltered data. */ + php_stream_seek(input->body, input->position, SEEK_SET); + } read = php_stream_read(input->body, buf, count); if (!read || read == (size_t) -1) {