svn: php/php-src/trunk/Zend/
| From: | Stanislav Malyshev | Date: | Thu, 16 Jul 2009 00:03:44 +0000 |
| Subject: | svn: php/php-src/trunk/Zend/ | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-59488@lists.php.net to get a copy of this message | ||
stas Thu, 16 Jul 2009 00:03:44 +0000
URL: http://svn.php.net/viewvc?view=revision&revision=284158
Changed paths:
U php/php-src/trunk/Zend/zend_ini.c
Log:
fix ini_restore problem
Modified: php/php-src/trunk/Zend/zend_ini.c
===================================================================
--- php/php-src/trunk/Zend/zend_ini.c 2009-07-16 00:03:18 UTC (rev 284157)
+++ php/php-src/trunk/Zend/zend_ini.c 2009-07-16 00:03:44 UTC (rev 284158)
@@ -46,15 +46,20 @@
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);
}