stas            Thu, 16 Jul 2009 00:03:18 +0000

URL: http://svn.php.net/viewvc?view=revision&revision=284157

Changed paths:
        U   php/php-src/branches/PHP_5_2/Zend/zend_ini.c

Log:
fix ini_restore problem


Modified: php/php-src/branches/PHP_5_2/Zend/zend_ini.c
===================================================================
--- php/php-src/branches/PHP_5_2/Zend/zend_ini.c        2009-07-16 00:02:19 UTC 
(rev 284156)
+++ php/php-src/branches/PHP_5_2/Zend/zend_ini.c        2009-07-16 00:03:18 UTC 
(rev 284157)
@@ -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);
                }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to