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===
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php