From: Joe Orton Date: Wed, 5 Jan 2005 21:33:56 +0000 (+0000) Subject: Fix #31413: curl POSTFIELDS usage on 64-bit platforms. X-Git-Tag: RELEASE_0_2~405 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=792032c6bbcbfd1d95a802b42cfbe213799859f4;p=php Fix #31413: curl POSTFIELDS usage on 64-bit platforms. --- diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 56dcfa1ce3..c6668491d6 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1096,18 +1096,22 @@ PHP_FUNCTION(curl_setopt) zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, &num_key, 0, NULL); postval = Z_STRVAL_PP(current); + + /* The arguments after _NAMELENGTH and _CONTENTSLENGTH + * must be explicitly cast to long in curl_formadd + * use since curl needs a long not an int. */ if (*postval == '@') { error = curl_formadd(&first, &last, CURLFORM_COPYNAME, string_key, - CURLFORM_NAMELENGTH, string_key_len - 1, + CURLFORM_NAMELENGTH, (long)string_key_len - 1, CURLFORM_FILE, ++postval, CURLFORM_END); } else { error = curl_formadd(&first, &last, CURLFORM_COPYNAME, string_key, - CURLFORM_NAMELENGTH, string_key_len - 1, + CURLFORM_NAMELENGTH, (long)string_key_len - 1, CURLFORM_COPYCONTENTS, postval, - CURLFORM_CONTENTSLENGTH, Z_STRLEN_PP(current), + CURLFORM_CONTENTSLENGTH, (long)Z_STRLEN_PP(current), CURLFORM_END); } }