diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-03-17 23:15:22 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-03-17 23:15:22 +0400 |
commit | aa5f55306b4bd630e9304e9a8d1ea10cf4121f78 (patch) | |
tree | c62ba226140efbe77cb039552300249902476f1d /main/php_variables.c | |
parent | 1b6327fd3bfba7be7d821e85b648e890350e7809 (diff) | |
download | php-git-aa5f55306b4bd630e9304e9a8d1ea10cf4121f78.tar.gz |
Refactored EG(active_symbol_table) to be zend_array* instead of HashTable*
Diffstat (limited to 'main/php_variables.c')
-rw-r--r-- | main/php_variables.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/main/php_variables.c b/main/php_variables.c index 671d8e59ff..47b2c522bd 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -67,7 +67,7 @@ PHPAPI void php_register_variable_ex(char *var_name, zval *val, zval *track_vars assert(var_name != NULL); - if (track_vars_array) { + if (track_vars_array && Z_TYPE_P(track_vars_array) == IS_ARRAY) { symtable1 = Z_ARRVAL_P(track_vars_array); } @@ -110,7 +110,8 @@ PHPAPI void php_register_variable_ex(char *var_name, zval *val, zval *track_vars } /* GLOBALS hijack attempt, reject parameter */ - if (symtable1 == EG(active_symbol_table) && + if (symtable1 && EG(active_symbol_table) && + symtable1 == &EG(active_symbol_table)->ht && var_len == sizeof("GLOBALS")-1 && !memcmp(var, "GLOBALS", sizeof("GLOBALS")-1)) { zval_dtor(val); @@ -353,6 +354,7 @@ SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data) char *strtok_buf = NULL; long count = 0; + ZVAL_UNDEF(&array); switch (arg) { case PARSE_POST: case PARSE_GET: |