summaryrefslogtreecommitdiff
path: root/main/php_variables.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2002-12-07 16:05:27 +0000
committerIlia Alshanetsky <iliaa@php.net>2002-12-07 16:05:27 +0000
commit683251eba3cb971eaeeca3ed24e8f55bcff4533b (patch)
tree3ac7942f4735403f4cedfbe8fecc9c2dd8eea556 /main/php_variables.c
parentc087d9e9e498ff60e245c0235993cc7b05a56154 (diff)
downloadphp-git-683251eba3cb971eaeeca3ed24e8f55bcff4533b.tar.gz
Fixed bug #20796. $_GET/$_POST/$_COOKIE data can get overwritten when
register_globals are on and input contains arrays.
Diffstat (limited to 'main/php_variables.c')
-rw-r--r--main/php_variables.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/main/php_variables.c b/main/php_variables.c
index 73e19a856a..fbf762ee3e 100644
--- a/main/php_variables.c
+++ b/main/php_variables.c
@@ -70,15 +70,15 @@ PHPAPI void php_register_variable_ex(char *var, zval *val, pval *track_vars_arra
assert(var != NULL);
- if (PG(register_globals)) {
- symtable1 = EG(active_symbol_table);
- }
if (track_vars_array) {
+ symtable1 = Z_ARRVAL_P(track_vars_array);
+ }
+ if (PG(register_globals)) {
if (symtable1) {
- symtable2 = Z_ARRVAL_P(track_vars_array);
+ symtable2 = EG(active_symbol_table);
} else {
- symtable1 = Z_ARRVAL_P(track_vars_array);
- }
+ symtable1 = EG(active_symbol_table);
+ }
}
if (!symtable1) {
/* Nothing to do */