From aa5f55306b4bd630e9304e9a8d1ea10cf4121f78 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 17 Mar 2014 23:15:22 +0400 Subject: Refactored EG(active_symbol_table) to be zend_array* instead of HashTable* --- main/php_variables.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'main/php_variables.c') 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: -- cgit v1.2.1