svn: /php/php-src/ branches/PHP_5_4/ext/curl/interface.c branches/PHP_5_4/ext/curl/tests/bug55767.phpt trunk/ext/curl/interface.c
trunk/ext/curl/tests/bug55767.phpt
| From: | Rasmus Lerdorf | Date: | Fri, 23 Sep 2011 15:19:48 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_4/ext/curl/interface.c branches/PHP_5_4/ext/curl/tests/bug55767.phpt trunk/ext/curl/interface.c trunk/ext/curl/tests/bug55767.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-66629@lists.php.net to get a copy of this message | ||
rasmus Fri, 23 Sep 2011 15:19:48 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=317208
Log:
Add a test and declare the local vars locally
Changed paths:
U php/php-src/branches/PHP_5_4/ext/curl/interface.c
A php/php-src/branches/PHP_5_4/ext/curl/tests/bug55767.phpt
U php/php-src/trunk/ext/curl/interface.c
A php/php-src/trunk/ext/curl/tests/bug55767.phpt
Modified: php/php-src/branches/PHP_5_4/ext/curl/interface.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/curl/interface.c 2011-09-23 15:12:01 UTC (rev 317207)
+++ php/php-src/branches/PHP_5_4/ext/curl/interface.c 2011-09-23 15:19:48 UTC (rev 317208)
@@ -2007,10 +2007,6 @@
HashTable *postfields;
struct HttpPost *first = NULL;
struct HttpPost *last = NULL;
- char *postval;
- char *string_key = NULL;
- ulong num_key;
- uint string_key_len;
postfields = HASH_OF(*zvalue);
if (!postfields) {
@@ -2023,11 +2019,16 @@
zend_hash_get_current_data(postfields, (void **) ¤t) == SUCCESS;
zend_hash_move_forward(postfields)
) {
+ char *postval;
+ char *string_key = NULL;
+ uint string_key_len;
+ ulong num_key;
SEPARATE_ZVAL(current);
convert_to_string_ex(current);
zend_hash_get_current_key_ex(postfields, &string_key, &string_key_len, &num_key,
0, NULL);
+
/* Pretend we have a string_key here */
if(!string_key) {
spprintf(&string_key, 0, "%ld", num_key);
Added: php/php-src/branches/PHP_5_4/ext/curl/tests/bug55767.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/curl/tests/bug55767.phpt (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/curl/tests/bug55767.phpt 2011-09-23 15:19:48 UTC (rev 317208)
@@ -0,0 +1,53 @@
+--TEST--
+Test curl_opt() function with POST params from array with a numeric key
+--SKIPIF--
+<?php
+if (!extension_loaded("curl")) exit("skip curl extension not loaded");
+if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip
PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
+?>
+--FILE--
+<?php
+/* Prototype : bool curl_setopt(resource ch, int option, mixed value)
+ * Description: Set an option for a cURL transfer
+ * Source code: ext/curl/interface.c
+ * Alias to functions:
+ */
+
+ $host = getenv('PHP_CURL_HTTP_REMOTE_SERVER');
+
+ // start testing
+ echo '*** Testing curl sending through GET an POST ***' . "\n";
+
+ $url = "{$host}/get.php?test=getpost&get_param=Hello%20World";
+ $ch = curl_init();
+
+ ob_start(); // start output buffering
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS,
array('Hello'=>'World','Foo'=>'Bar',100=>'John
Doe'));
+ curl_setopt($ch, CURLOPT_URL, $url); //set the url we want to use
+
+ $curl_content = curl_exec($ch);
+ curl_close($ch);
+
+ var_dump( $curl_content );
+?>
+===DONE===
+--EXPECTF--
+*** Testing curl sending through GET an POST ***
+string(203) "array(2) {
+ ["test"]=>
+ string(7) "getpost"
+ ["get_param"]=>
+ string(11) "Hello World"
+}
+array(3) {
+ ["Hello"]=>
+ string(5) "World"
+ ["Foo"]=>
+ string(3) "Bar"
+ [100]=>
+ string(8) "John Doe"
+}
+"
+===DONE===
Modified: php/php-src/trunk/ext/curl/interface.c
===================================================================
--- php/php-src/trunk/ext/curl/interface.c 2011-09-23 15:12:01 UTC (rev 317207)
+++ php/php-src/trunk/ext/curl/interface.c 2011-09-23 15:19:48 UTC (rev 317208)
@@ -2007,10 +2007,6 @@
HashTable *postfields;
struct HttpPost *first = NULL;
struct HttpPost *last = NULL;
- char *postval;
- char *string_key = NULL;
- ulong num_key;
- uint string_key_len;
postfields = HASH_OF(*zvalue);
if (!postfields) {
@@ -2023,6 +2019,10 @@
zend_hash_get_current_data(postfields, (void **) ¤t) == SUCCESS;
zend_hash_move_forward(postfields)
) {
+ char *postval;
+ char *string_key = NULL;
+ uint string_key_len;
+ ulong num_key;
SEPARATE_ZVAL(current);
convert_to_string_ex(current);
Added: php/php-src/trunk/ext/curl/tests/bug55767.phpt
===================================================================
--- php/php-src/trunk/ext/curl/tests/bug55767.phpt (rev 0)
+++ php/php-src/trunk/ext/curl/tests/bug55767.phpt 2011-09-23 15:19:48 UTC (rev 317208)
@@ -0,0 +1,53 @@
+--TEST--
+Test curl_opt() function with POST params from array with a numeric key
+--SKIPIF--
+<?php
+if (!extension_loaded("curl")) exit("skip curl extension not loaded");
+if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) exit("skip
PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined");
+?>
+--FILE--
+<?php
+/* Prototype : bool curl_setopt(resource ch, int option, mixed value)
+ * Description: Set an option for a cURL transfer
+ * Source code: ext/curl/interface.c
+ * Alias to functions:
+ */
+
+ $host = getenv('PHP_CURL_HTTP_REMOTE_SERVER');
+
+ // start testing
+ echo '*** Testing curl sending through GET an POST ***' . "\n";
+
+ $url = "{$host}/get.php?test=getpost&get_param=Hello%20World";
+ $ch = curl_init();
+
+ ob_start(); // start output buffering
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS,
array('Hello'=>'World','Foo'=>'Bar',100=>'John
Doe'));
+ curl_setopt($ch, CURLOPT_URL, $url); //set the url we want to use
+
+ $curl_content = curl_exec($ch);
+ curl_close($ch);
+
+ var_dump( $curl_content );
+?>
+===DONE===
+--EXPECTF--
+*** Testing curl sending through GET an POST ***
+string(203) "array(2) {
+ ["test"]=>
+ string(7) "getpost"
+ ["get_param"]=>
+ string(11) "Hello World"
+}
+array(3) {
+ ["Hello"]=>
+ string(5) "World"
+ ["Foo"]=>
+ string(3) "Bar"
+ [100]=>
+ string(8) "John Doe"
+}
+"
+===DONE===