From: Michael Wallner Date: Fri, 22 Jul 2005 14:30:18 +0000 (+0000) Subject: - fix leaking curl callbacks X-Git-Tag: RELEASE_0_10_0~19 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=0cd27fd7548bc1cc3ca19e736f286fe4a6ad749b;p=m6w6%2Fext-http - fix leaking curl callbacks --- diff --git a/http_request_api.c b/http_request_api.c index 3f77eff..a83cacf 100644 --- a/http_request_api.c +++ b/http_request_api.c @@ -355,6 +355,7 @@ PHP_HTTP_API STATUS _http_request_init(CURL *ch, http_request_method meth, char /* progress callback */ if (zoption = http_curl_getopt(options, "onprogress", 0)) { + HTTP_CURL_OPT(NOPROGRESS, 0); HTTP_CURL_OPT(PROGRESSFUNCTION, http_curl_progress_callback); HTTP_CURL_OPT(PROGRESSDATA, http_curl_callback_data(zoption)); } else { @@ -920,6 +921,10 @@ static int http_curl_progress_callback(void *data, double dltotal, double dlnow, params_pass[2] = ¶ms_local[2]; params_pass[3] = ¶ms_local[3]; + INIT_PZVAL(params_pass[0]); + INIT_PZVAL(params_pass[1]); + INIT_PZVAL(params_pass[2]); + INIT_PZVAL(params_pass[3]); ZVAL_DOUBLE(params_pass[0], dltotal); ZVAL_DOUBLE(params_pass[1], dlnow); ZVAL_DOUBLE(params_pass[2], ultotal); @@ -937,8 +942,10 @@ static int http_curl_debug_callback(CURL *ch, curl_infotype type, char *string, params_pass[0] = ¶ms_local[0]; params_pass[1] = ¶ms_local[1]; + INIT_PZVAL(params_pass[0]); + INIT_PZVAL(params_pass[1]); ZVAL_LONG(params_pass[0], type); - ZVAL_STRINGL(params_pass[1], string, length, 1); + ZVAL_STRINGL(params_pass[1], string, length, 0); call_user_function(EG(function_table), NULL, func, &retval, 2, params_pass TSRMLS_CC);