]> granicus.if.org Git - php/commitdiff
Fix #31413: curl POSTFIELDS usage on 64-bit platforms.
authorJoe Orton <jorton@php.net>
Wed, 5 Jan 2005 21:33:56 +0000 (21:33 +0000)
committerJoe Orton <jorton@php.net>
Wed, 5 Jan 2005 21:33:56 +0000 (21:33 +0000)
ext/curl/interface.c

index 56dcfa1ce3f92b7ff8519cbb2270e2a74201dcd3..c6668491d69b6f9cde86db8ca7ebd16aa726a2ca 100644 (file)
@@ -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);
                                        }
                                }