diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | main/php_variables.c | 4 | ||||
-rw-r--r-- | tests/basic/bug61000.phpt | 38 |
3 files changed, 42 insertions, 2 deletions
@@ -16,6 +16,8 @@ PHP NEWS . Fix bug #60895 (Possible invalid handler usage in windows random functions). (Pierre) . Fixed bug #51860 (Include fails with toplevel symlink to /). (Dmitry) + . Fixed bug #61000 (Exceeding max nesting level doesn't delete numerical vars). + (Laruence) - Firebird Database extension (ibase): . Fixed bug #60802 (ibase_trans() gives segfault when passing params). diff --git a/main/php_variables.c b/main/php_variables.c index 32588d5f8f..9c54baf49c 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -138,10 +138,10 @@ PHPAPI void php_register_variable_ex(char *var_name, zval *val, zval *track_vars if (track_vars_array) { ht = Z_ARRVAL_P(track_vars_array); - zend_hash_del(ht, var, var_len + 1); + zend_symtable_del(ht, var, var_len + 1); } else if (PG(register_globals)) { ht = EG(active_symbol_table); - zend_hash_del(ht, var, var_len + 1); + zend_symtable_del(ht, var, var_len + 1); } zval_dtor(val); diff --git a/tests/basic/bug61000.phpt b/tests/basic/bug61000.phpt new file mode 100644 index 0000000000..d121114bcd --- /dev/null +++ b/tests/basic/bug61000.phpt @@ -0,0 +1,38 @@ +--TEST-- +Bug #61000 (Exceeding max nesting level doesn't delete numerical vars) +--INI-- +max_input_nesting_level=2 +--POST-- +1[a][]=foo&1[a][b][c]=bar +--GET-- +a[a][]=foo&a[a][b][c]=bar +--FILE-- +<?php +print_r($_GET); +print_r($_POST); +--EXPECTF-- +Array +( +) +Array +( +) +--TEST-- +Bug #61000 (Exceeding max nesting level doesn't delete numerical vars) +--INI-- +max_input_nesting_level=2 +--POST-- +1[a][]=foo&1[a][b][c]=bar +--GET-- +a[a][]=foo&a[a][b][c]=bar +--FILE-- +<?php +print_r($_GET); +print_r($_POST); +--EXPECTF-- +Array +( +) +Array +( +) |