cvs: php4 /ext/curl curl.c
| From: | Sterling Hughes | Date: | Tue, 20 Nov 2001 11:29:55 +0000 |
| Subject: | cvs: php4 /ext/curl curl.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-8264@lists.php.net to get a copy of this message | ||
sterling Tue Nov 20 06:29:55 2001 EDT
Modified files:
/php4/ext/curl curl.c
Log:
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.
Index: php4/ext/curl/curl.c
diff -u php4/ext/curl/curl.c:1.97 php4/ext/curl/curl.c:1.98
--- php4/ext/curl/curl.c:1.97 Tue Nov 13 06:47:52 2001
+++ php4/ext/curl/curl.c Tue Nov 20 06:29:54 2001
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: curl.c,v 1.97 2001/11/13 11:47:52 zeev Exp $ */
+/* $Id: curl.c,v 1.98 2001/11/20 11:29:54 sterling Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -706,8 +706,11 @@
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 @@
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) {