jani Fri Nov 16 14:21:01 2007 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/curl interface.c
Log:
MFH: - Fixed bug #43092 (curl_copy_handle() crashes with > 32 chars long URL)
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.62.2.14.2.27.2.3&r2=1.62.2.14.2.27.2.4&diff_format=u
Index: php-src/ext/curl/interface.c
diff -u php-src/ext/curl/interface.c:1.62.2.14.2.27.2.3
php-src/ext/curl/interface.c:1.62.2.14.2.27.2.4
--- php-src/ext/curl/interface.c:1.62.2.14.2.27.2.3 Sat Oct 13 11:34:43 2007
+++ php-src/ext/curl/interface.c Fri Nov 16 14:21:01 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interface.c,v 1.62.2.14.2.27.2.3 2007/10/13 11:34:43 bjori Exp $ */
+/* $Id: interface.c,v 1.62.2.14.2.27.2.4 2007/11/16 14:21:01 jani Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -1074,9 +1074,9 @@
memset(&(*ch)->err, 0, sizeof((*ch)->err));
- zend_llist_init(&(*ch)->to_free.str, sizeof(char *),
(void(*)(void *)) curl_free_string, 0);
- zend_llist_init(&(*ch)->to_free.slist, sizeof(struct curl_slist),
(void(*)(void *)) curl_free_slist, 0);
- zend_llist_init(&(*ch)->to_free.post, sizeof(struct HttpPost),
(void(*)(void *)) curl_free_post, 0);
+ zend_llist_init(&(*ch)->to_free.str, sizeof(char *),
(llist_dtor_func_t) curl_free_string, 0);
+ zend_llist_init(&(*ch)->to_free.slist, sizeof(struct curl_slist),
(llist_dtor_func_t) curl_free_slist, 0);
+ zend_llist_init(&(*ch)->to_free.post, sizeof(struct HttpPost),
(llist_dtor_func_t) curl_free_post, 0);
}
/* }}} */
@@ -1204,6 +1204,8 @@
curl_easy_setopt(dupch->cp, CURLOPT_WRITEHEADER, (void *) dupch);
zend_llist_copy(&dupch->to_free.str, &ch->to_free.str);
+ /* Don't try to free copied strings, they're free'd when the original
handle is destroyed */
+ dupch->to_free.str.dtor = NULL;
zend_llist_copy(&dupch->to_free.slist, &ch->to_free.slist);
zend_llist_copy(&dupch->to_free.post, &ch->to_free.post);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php