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 Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php