summaryrefslogtreecommitdiff
path: root/Zend/zend_ini.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2009-07-16 00:02:19 +0000
committerStanislav Malyshev <stas@php.net>2009-07-16 00:02:19 +0000
commit67f846c4c39c957b2443ae49a84023f053d19f4b (patch)
treeac1a360976b7f6fb59db4c18c6b9e4df92aa067f /Zend/zend_ini.c
parent1db1d4ccc85141a3528ac06f04bf5ae691bccf16 (diff)
downloadphp-git-67f846c4c39c957b2443ae49a84023f053d19f4b.tar.gz
fix ini_restore problem
Diffstat (limited to 'Zend/zend_ini.c')
-rw-r--r--Zend/zend_ini.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c
index f376e7bbd5..604e74f6e1 100644
--- a/Zend/zend_ini.c
+++ b/Zend/zend_ini.c
@@ -46,15 +46,20 @@ static int zend_remove_ini_entries(zend_ini_entry *ini_entry, int *module_number
static int zend_restore_ini_entry_cb(zend_ini_entry *ini_entry, int stage TSRMLS_DC) /* {{{ */
{
+ int result = FAILURE;
if (ini_entry->modified) {
if (ini_entry->on_modify) {
zend_try {
/* even if on_modify bails out, we have to continue on with restoring,
since there can be allocated variables that would be freed on MM shutdown
and would lead to memory corruption later ini entry is modified again */
- ini_entry->on_modify(ini_entry, ini_entry->orig_value, ini_entry->orig_value_length, ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC);
+ result = ini_entry->on_modify(ini_entry, ini_entry->orig_value, ini_entry->orig_value_length, ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC);
} zend_end_try();
}
+ if(stage == ZEND_INI_STAGE_RUNTIME && result == FAILURE) {
+ /* runtime failure is OK */
+ return 1;
+ }
if (ini_entry->value != ini_entry->orig_value) {
efree(ini_entry->value);
}