diff options
author | Xinchen Hui <laruence@php.net> | 2012-02-08 14:07:27 +0000 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-02-08 14:07:27 +0000 |
commit | 3f23b111515f50e1a273561b7400c33c9f268c0a (patch) | |
tree | 09f38c70e0f2bbf58d3e7f13b76e3eb49fc91618 | |
parent | ce1a1f5f491ea149e0e67f07993a5ce374415238 (diff) | |
download | php-git-3f23b111515f50e1a273561b7400c33c9f268c0a.tar.gz |
Fixed bug #61000 (Exceeding max nesting level doesn't delete numerical vars).
-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 +( +) |