From: Xinchen Hui Date: Sun, 27 Dec 2015 06:54:39 +0000 (-0800) Subject: Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with reference to... X-Git-Tag: php-7.0.3RC1~98 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2453a48ab56f25c0900a5baa917cedc88db8e3e1;p=php Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with reference to CURLFile) --- diff --git a/NEWS b/NEWS index 932dd4a251..fdabff6af0 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,11 @@ PHP NEWS . Fixed bug #71201 (round() segfault on 64-bit builds). (Anatol) . Added support for new HTTP 451 code. (Julien) +- CURL: + . Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with + reference to CURLFile). (Laruence) + + - SPL: . Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading). (Laruence) diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 7dd04a6d15..8ab850faaa 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -2019,6 +2019,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{ CURLcode error = CURLE_OK; zend_long lval; + ZVAL_DEREF(zvalue); switch (option) { /* Long options */ case CURLOPT_SSL_VERIFYHOST: @@ -2464,6 +2465,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{ } ZEND_HASH_FOREACH_VAL(ph, current) { + ZVAL_DEREF(current); val = zval_get_string(current); slist = curl_slist_append(slist, ZSTR_VAL(val)); zend_string_release(val); @@ -2531,6 +2533,7 @@ static int _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue) /* {{{ zend_string_addref(string_key); } + ZVAL_DEREF(current); if (Z_TYPE_P(current) == IS_OBJECT && instanceof_function(Z_OBJCE_P(current), curl_CURLFile_class)) { /* new-style file upload */