getopt() doesn't work if variables_order does not include "S" because it

only looks in $_SERVER for argv.  So, if we don't find argv in $_SERVER
fall back to looking in the global symbol table where register_argc_argv
would have put it.
This commit is contained in:
Rasmus Lerdorf 2004-03-10 19:12:49 +00:00
parent 579a7dd0c9
commit 05f8b4e6bc

View File

@ -1405,8 +1405,8 @@ PHP_FUNCTION(getopt)
* in order to be on the safe side, even though it is also available
* from the symbol table.
*/
if (zend_hash_find(HASH_OF(PG(http_globals)[TRACK_VARS_SERVER]), "argv", sizeof("argv"),
(void **) &args) != FAILURE) {
if (zend_hash_find(HASH_OF(PG(http_globals)[TRACK_VARS_SERVER]), "argv", sizeof("argv"), (void **) &args) != FAILURE ||
zend_hash_find(&EG(symbol_table), "argv", sizeof("argv"), (void **) &args) != FAILURE) {
int pos = 0;
zval **arg;