summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2007-03-18 16:36:13 +0000
committerIlia Alshanetsky <iliaa@php.net>2007-03-18 16:36:13 +0000
commit89939e13d693aac8045beb0913aef33204de500c (patch)
treefb1d7f651b6618195a38f74f07308298cb3e9cc6
parent8e67ec8225b8a734b36ab6e74b6c18bf19deaf88 (diff)
downloadphp-git-89939e13d693aac8045beb0913aef33204de500c.tar.gz
Fixed MOPB-26-2007 mb_parse_str() can be used to activate register_globals
# Discovered by Stefan Esser
-rw-r--r--ext/mbstring/mb_gpc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/ext/mbstring/mb_gpc.c b/ext/mbstring/mb_gpc.c
index ae37d2ad34..1eb7f63ac0 100644
--- a/ext/mbstring/mb_gpc.c
+++ b/ext/mbstring/mb_gpc.c
@@ -208,9 +208,8 @@ enum mbfl_no_encoding _php_mb_encoding_handler_ex(const php_mb_encoding_handler_
/* register_globals stuff
* XXX: this feature is going to be deprecated? */
- if (info->force_register_globals) {
- prev_rg_state = PG(register_globals);
- PG(register_globals) = 1;
+ if (info->force_register_globals && !(prev_rg_state = PG(register_globals))) {
+ zend_alter_ini_entry("register_globals", sizeof("register_globals"), "1", sizeof("1")-1, PHP_INI_PERDIR, PHP_INI_STAGE_RUNTIME);
}
if (!res || *res == '\0') {
@@ -343,8 +342,8 @@ enum mbfl_no_encoding _php_mb_encoding_handler_ex(const php_mb_encoding_handler_
out:
/* register_global stuff */
- if (info->force_register_globals) {
- PG(register_globals) = prev_rg_state;
+ if (info->force_register_globals && !prev_rg_state) {
+ zend_alter_ini_entry("register_globals", sizeof("register_globals"), "0", sizeof("0")-1, PHP_INI_PERDIR, PHP_INI_STAGE_RUNTIME);
}
if (convd != NULL) {