From adaf6daa3cfb28ece02cf897041c09aea363075c Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Fri, 21 Mar 2008 18:15:43 +0000 Subject: [PATCH] - Fix streams handling logic, only real FPs can be mmaped here --- Zend/zend_stream.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 4ca0c818d3..84096879b7 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -154,6 +154,7 @@ static size_t zend_stream_read(zend_file_handle *file_handle, char *buf, size_t ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len TSRMLS_DC) /* {{{ */ { size_t size; + zend_stream_type old_type; if (file_handle->type == ZEND_HANDLE_FILENAME) { if (zend_stream_open(file_handle->filename, file_handle TSRMLS_CC) == FAILURE) { @@ -196,9 +197,10 @@ ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t return FAILURE; } + old_type = file_handle->type; file_handle->type = ZEND_HANDLE_STREAM; /* we might still be _FP but we need fsize() work */ - if (!file_handle->handle.stream.isatty && size) { + if (old_type == ZEND_HANDLE_FP && !file_handle->handle.stream.isatty && size) { #if HAVE_MMAP if (file_handle->handle.fp && size) { /* *buf[size] is zeroed automatically by the kernel */ -- 2.50.1