Indeed, I forgot to test that case. If I remember correctly, there was
no test cases for that function, so I'll fix this tonight and add some
tests.
Regards
On 7/28/08, Derick Rethans <[EMAIL PROTECTED]> wrote:
> On Wed, 25 Jun 2008, Olivier Hill wrote:
>
>> ohill Wed Jun 25 12:16:17 2008 UTC
>>
>> Modified files: (Branch: PHP_5_3)
>> /php-src/ext/standard string.c
>
> <snip>
>
>> Log:
>> New parameter parsing API
>
> The following change introduces a regression:
>
> @@ -4135,24 +4095,23 @@
> Parses GET/POST/COOKIE data and sets global variables */
> PHP_FUNCTION(parse_str)
> {
> - zval **arg;
> - zval **arrayArg;
> + char *arg;
> + zval **arrayArg = NULL;
> zval *sarg;
> char *res = NULL;
> - int argCount;
> + int arglen;
>
> - argCount = ZEND_NUM_ARGS();
> - if (argCount < 1 || argCount > 2 || zend_get_parameters_ex(argCount,
> &arg, &arrayArg) == FAILURE) {
> - WRONG_PARAM_COUNT;
> + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|Z", &arg,
> &arglen, &arrayArg) == FAILURE) {
> + return;
> }
>
> - convert_to_string_ex(arg);
> - sarg = *arg;
> - if (Z_STRVAL_P(sarg) && *Z_STRVAL_P(sarg)) {
> - res = estrndup(Z_STRVAL_P(sarg), Z_STRLEN_P(sarg));
> + if (!arglen) {
> + return;
> }
>
> - if (argCount == 1) {
> + res = estrndup(arg, arglen);
> +
> + if (arrayArg == NULL) {
> zval tmp;
>
> if (!EG(active_symbol_table)) {
>
>
> [EMAIL PROTECTED]:~$ php-5.2dev -r 'parse_str( "", $p ); var_dump( $p );'
>
> array(0) {
> }
>
> [EMAIL PROTECTED]:~$ php-5.3dev -r 'parse_str( "", $p ); var_dump( $p );'
> NULL
>
> Please fix this - a test file is attached.
>
> regards,
> Derick
>
> --
> HEAD before 5_3!: http://tinyurl.com/6d2esb
> http://derickrethans.nl | http://ezcomponents.org | http://xdebug.org
--
Olivier Hill, ing. jr.
http://www.olivierhill.ca/
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php