summaryrefslogtreecommitdiff
path: root/ext/curl/interface.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-02-05 19:49:26 +0800
committerXinchen Hui <laruence@gmail.com>2016-02-05 19:49:26 +0800
commit5fdfab743d964bb13602effc9efcd6f747e2f58c (patch)
tree270083f136799e4b51578e7e136b43265f68688b /ext/curl/interface.c
parent8442a1cc4ee79b09b5bb21d64aa87edcea453c21 (diff)
downloadphp-git-5fdfab743d964bb13602effc9efcd6f747e2f58c.tar.gz
Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_exec)
Diffstat (limited to 'ext/curl/interface.c')
-rw-r--r--ext/curl/interface.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 267afecd8b..d9aab7541c 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -2543,7 +2543,12 @@ static int _php_curl_setopt(php_curl *ch, long option, zval **zvalue TSRMLS_DC)
return 1;
}
}
- zend_hash_index_update(ch->to_free->slist, (ulong) option, &slist, sizeof(struct curl_slist *), NULL);
+
+ if (Z_REFCOUNT_P(ch->clone) <= 1) {
+ zend_hash_index_update(ch->to_free->slist, (ulong) option, &slist, sizeof(struct curl_slist *), NULL);
+ } else {
+ zend_hash_next_index_insert(ch->to_free->slist, &slist, sizeof(struct curl_slist *), NULL);
+ }
error = curl_easy_setopt(ch->cp, option, slist);