summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/streams/streams.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c
index c754bdc58c..3ed457365a 100644
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -457,7 +457,7 @@ fprintf(stderr, "stream_free: %s:%p[%s] preserve_handle=%d release_cast=%d remov
_php_stream_flush(stream, 1 TSRMLS_CC);
/* If not called from the resource dtor, remove the stream from the resource list. */
- if ((close_options & PHP_STREAM_FREE_RSRC_DTOR) == 0) {
+ if ((close_options & PHP_STREAM_FREE_RSRC_DTOR) == 0 && stream->res) {
/* zend_list_delete actually only decreases the refcount; if we're
* releasing the stream, we want to actually delete the resource from
* the resource list, otherwise the resource will point to invalid memory.