From: Stanislav Malyshev Date: Tue, 12 Sep 2000 10:56:25 +0000 (+0000) Subject: Make parse_str always register globals with 1 argument and never - X-Git-Tag: php-4.0.3RC1~165 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=44e04f76889abf9f913b3a627863420d03cdc347;p=php Make parse_str always register globals with 1 argument and never - with 2 arguments --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 34fdd1f061..76d2d1b97b 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2423,6 +2423,7 @@ PHP_FUNCTION(parse_str) zval *sarg; char *res = NULL; int argCount; + int old_rg; PLS_FETCH(); SLS_FETCH(); @@ -2438,19 +2439,19 @@ PHP_FUNCTION(parse_str) res = estrndup(sarg->value.str.val, sarg->value.str.len); } - if(argCount == 1) + old_rg = PG(register_globals); + if(argCount == 1) { + PG(register_globals) = 1; php_treat_data(PARSE_STRING, res, NULL ELS_CC PLS_CC SLS_CC); - else - { - int old_rg = PG(register_globals); + } else { PG(register_globals) = 0; /* Clear out the array that was passed in. */ zval_dtor(*arrayArg); array_init(*arrayArg); php_treat_data(PARSE_STRING, res, *arrayArg ELS_CC PLS_CC SLS_CC); - PG(register_globals) = old_rg; } + PG(register_globals) = old_rg; } /* }}} */