fix leaks dues to upmerges
authorMichael Wallner <mike@php.net>
Mon, 9 Feb 2015 09:48:58 +0000 (10:48 +0100)
committerMichael Wallner <mike@php.net>
Mon, 9 Feb 2015 09:48:58 +0000 (10:48 +0100)
php_http_client_curl.c
php_http_message.c

index 046314313b718335a76f84e1878ef8968faa079b..69d01a7719a3293d220ff6c741c641ec86bf4e61 100644 (file)
@@ -1111,11 +1111,14 @@ static ZEND_RESULT_CODE php_http_curle_option_set_proxyheader(php_http_option_t
                {
                        if (header_key.key) {
                                zend_string *zs = zval_get_string(header_val);
+
                                php_http_buffer_appendf(&header, "%s: %s", header_key.key->val, zs->val);
+                               zend_string_release(zs);
+
                                php_http_buffer_fix(&header);
                                curl->options.proxyheaders = curl_slist_append(curl->options.proxyheaders, header.data);
                                php_http_buffer_reset(&header);
-                               zend_string_release(zs);
+
                        }
                }
                ZEND_HASH_FOREACH_END();
@@ -1834,11 +1837,23 @@ static void php_http_client_curl_handler_dtor(php_http_client_curl_handler_t *ha
        php_http_buffer_dtor(&handler->options.cookies);
        zend_hash_destroy(&handler->options.cache);
 
+#if PHP_HTTP_CURL_VERSION(7,21,3)
+       if (handler->options.resolve) {
+               curl_slist_free_all(handler->options.resolve);
+               handler->options.resolve = NULL;
+       }
+#endif
+
        if (handler->options.headers) {
                curl_slist_free_all(handler->options.headers);
                handler->options.headers = NULL;
        }
 
+       if (handler->options.proxyheaders) {
+               curl_slist_free_all(handler->options.proxyheaders);
+               handler->options.proxyheaders = NULL;
+       }
+
        efree(handler);
 }
 
index ae7ca6e9706c16ac80e34c37fded29215329e956..6ecf6e737831eb818d75beda189f431271ea6c57 100644 (file)
@@ -1106,7 +1106,7 @@ static PHP_METHOD(HttpMessage, getHeader)
 
                if ((header = php_http_message_header(obj->message, header_str, header_len))) {
                        if (!header_ce) {
-                               RETURN_ZVAL(header, 1, 1);
+                               RETURN_ZVAL_FAST(header);
                        } else if (instanceof_function(header_ce, php_http_header_class_entry)) {
                                php_http_object_method_t cb;
                                zval argv[2];