diff options
author | Stanislav Malyshev <stas@php.net> | 2015-04-14 01:20:31 -0700 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2015-04-14 01:28:06 -0700 |
commit | b3709bfc52fa60acef1376dbff9ec09f52ed8a5a (patch) | |
tree | bff6fc91f50d11fcf9e4f6c3f6a9321aca3a305d /ext/standard/http_fopen_wrapper.c | |
parent | cddb5eb3e9ff3af9fdff8b849bae67e4d3c7bd03 (diff) | |
parent | 5776fceb16597d9ce686a01c1b72eac155b9741b (diff) | |
download | php-git-b3709bfc52fa60acef1376dbff9ec09f52ed8a5a.tar.gz |
Merge branch 'PHP-5.6'
* PHP-5.6: (27 commits)
fix non-standard C
update NEWS
5.4.41 next
fix CVE num
update NEWS
Fix bug #69441 (Buffer Overflow when parsing tar/zip/phar in phar_set_inode)
fix test
fix type in fix for #69085
fix memory leak & add test
Fix tests
fix CVE num
Fix bug #69337 (php_stream_url_wrap_http_ex() type-confusion vulnerability)
Fix test
Additional fix for bug #69324
More fixes for bug #69152
Fixed bug #69353 (Missing null byte checks for paths in various PHP extensions)
Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar)
Fixed bug #69316 (Use-after-free in php_curl related to CURLOPT_FILE/_INFILE/_WRITEHEADER)
Fix bug #68486 and bug #69218 (segfault in apache2handler with apache 2.4)
Fix bug #68819 (Fileinfo on specific file causes spurious OOM and/or segfault)
...
Conflicts:
Zend/zend_exceptions.c
ext/curl/interface.c
ext/dom/document.c
ext/fileinfo/libmagic/softmagic.c
ext/gd/gd.c
ext/hash/hash.c
ext/pgsql/pgsql.c
ext/phar/phar.c
ext/phar/phar_internal.h
ext/standard/http_fopen_wrapper.c
ext/standard/link.c
ext/standard/streamsfuncs.c
ext/xmlwriter/php_xmlwriter.c
ext/zlib/zlib.c
Diffstat (limited to 'ext/standard/http_fopen_wrapper.c')
-rw-r--r-- | ext/standard/http_fopen_wrapper.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c index 457e806440..d5724fed30 100644 --- a/ext/standard/http_fopen_wrapper.c +++ b/ext/standard/http_fopen_wrapper.c @@ -670,6 +670,7 @@ finish: } response_header = zend_hash_str_find_ind(symbol_table, "http_response_header", sizeof("http_response_header")-1); + Z_ADDREF_P(response_header); if (!php_stream_eof(stream)) { size_t tmp_line_len; @@ -905,6 +906,10 @@ out: if (stream) { if (header_init) { ZVAL_COPY(&stream->wrapperdata, response_header); + } else { + if(response_header) { + Z_DELREF_P(response_header); + } } php_stream_notify_progress_init(context, 0, file_size); @@ -925,8 +930,13 @@ out: if (transfer_encoding) { php_stream_filter_append(&stream->readfilters, transfer_encoding); } - } else if (transfer_encoding) { - php_stream_filter_free(transfer_encoding); + } else { + if(response_header) { + Z_DELREF_P(response_header); + } + if (transfer_encoding) { + php_stream_filter_free(transfer_encoding); + } } return stream; |