]> granicus.if.org Git - php/commitdiff
Fixed recently introduced memory leak
authorDmitry Stogov <dmitry@zend.com>
Tue, 14 Apr 2015 11:46:26 +0000 (14:46 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 14 Apr 2015 11:46:26 +0000 (14:46 +0300)
ext/standard/http_fopen_wrapper.c

index d5724fed30d8cd597b81ad1fdd83185c9d394010..ae4b13745bbfdfb4b7407de414aef3ca5cd061c0 100644 (file)
@@ -670,7 +670,9 @@ finish:
        }
 
        response_header = zend_hash_str_find_ind(symbol_table, "http_response_header", sizeof("http_response_header")-1);
-       Z_ADDREF_P(response_header);
+       if (Z_TYPE_P(response_header) != IS_ARRAY) {
+               goto out;
+       }
 
        if (!php_stream_eof(stream)) {
                size_t tmp_line_len;
@@ -906,10 +908,6 @@ 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);
 
@@ -931,9 +929,6 @@ out:
                        php_stream_filter_append(&stream->readfilters, transfer_encoding);
                }
        } else {
-               if(response_header) {
-                       Z_DELREF_P(response_header);
-               }
                if (transfer_encoding) {
                        php_stream_filter_free(transfer_encoding);
                }