From e7aa85c0117e3cbeba8e21ba31a849ecc6b2c4ae Mon Sep 17 00:00:00 2001 From: Sterling Hughes Date: Tue, 20 Nov 2001 11:29:54 +0000 Subject: Fix a crash bug in CURLOPT_POSTFIELDS by using curl_formadd instead of curl_formparse Fix a crash bug when CURLOPT_INFILE is not properly specified. --- ext/curl/curl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'ext') diff --git a/ext/curl/curl.c b/ext/curl/curl.c index 43dfebd5b8..26bdd73a3b 100644 --- a/ext/curl/curl.c +++ b/ext/curl/curl.c @@ -706,8 +706,11 @@ PHP_FUNCTION(curl_setopt) case CURLOPT_INFILE: case CURLOPT_WRITEHEADER: case CURLOPT_STDERR: { - FILE *fp; + FILE *fp = NULL; ZEND_FETCH_RESOURCE(fp, FILE *, zvalue, -1, "File-Handle", php_file_le_fopen()); + if (!fp) { + RETURN_FALSE; + } error = CURLE_OK; switch (option) { @@ -789,11 +792,8 @@ PHP_FUNCTION(curl_setopt) zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, &num_key, 0, NULL); - postval = emalloc((string_key_len - 1) + Z_STRLEN_PP(current) + 1); - snprintf(postval, (sizeof("%s=%s") - 1) + (string_key_len - 1) + Z_STRLEN_PP(current), - "%s=%s", string_key, Z_STRVAL_PP(current)); - - error = curl_formparse(postval, &first, &last); + error = curl_formadd(&first, &last, CURLFORM_COPYNAME, string_key, + CURLFORM_PTRCONTENTS, Z_STRVAL_PP(current), CURLFORM_END); } if (error != CURLE_OK) { -- cgit v1.2.1