summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2012-02-08 14:07:27 +0000
committerXinchen Hui <laruence@php.net>2012-02-08 14:07:27 +0000
commit3f23b111515f50e1a273561b7400c33c9f268c0a (patch)
tree09f38c70e0f2bbf58d3e7f13b76e3eb49fc91618
parentce1a1f5f491ea149e0e67f07993a5ce374415238 (diff)
downloadphp-git-3f23b111515f50e1a273561b7400c33c9f268c0a.tar.gz
Fixed bug #61000 (Exceeding max nesting level doesn't delete numerical vars).
-rw-r--r--NEWS2
-rw-r--r--main/php_variables.c4
-rw-r--r--tests/basic/bug61000.phpt38
3 files changed, 42 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 8f1a20a69b..36b5b00023 100644
--- a/NEWS
+++ b/NEWS
@@ -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
+(
+)