]> granicus.if.org Git - php/commitdiff
MFH: Improved the fix for #21306 a bit
authorfoobar <sniper@php.net>
Fri, 23 Sep 2005 08:16:01 +0000 (08:16 +0000)
committerfoobar <sniper@php.net>
Fri, 23 Sep 2005 08:16:01 +0000 (08:16 +0000)
ext/session/session.c

index 6158b722891656377124b43b0a40f6e9955a8701..bc94687339bcca6f0fba192bcd3b7e6dd3e9f82b 100644 (file)
@@ -1628,7 +1628,9 @@ static void php_rinit_session_globals(TSRMLS_D)
 static void php_rshutdown_session_globals(TSRMLS_D)
 {
        if (PS(mod_data)) {
-               PS(mod)->s_close(&PS(mod_data) TSRMLS_CC);
+               zend_try {
+                       PS(mod)->s_close(&PS(mod_data) TSRMLS_CC);
+               } zend_end_try();
        }
        if (PS(id)) {
                efree(PS(id));
@@ -1665,10 +1667,12 @@ PHP_RINIT_FUNCTION(session)
 
 static void php_session_flush(TSRMLS_D)
 {
-       if(PS(session_status)==php_session_active) {
-               php_session_save_current_state(TSRMLS_C);
+       if (PS(session_status) == php_session_active) {
+               PS(session_status) = php_session_none;
+               zend_try {
+                       php_session_save_current_state(TSRMLS_C);
+               } zend_end_try();
        }
-       PS(session_status)=php_session_none;
 }
 
 /* {{{ proto void session_write_close(void)
@@ -1680,10 +1684,8 @@ PHP_FUNCTION(session_write_close)
 
 PHP_RSHUTDOWN_FUNCTION(session)
 {
-       zend_try {
-               php_session_flush(TSRMLS_C);
-               php_rshutdown_session_globals(TSRMLS_C);
-       } zend_end_try();
+       php_session_flush(TSRMLS_C);
+       php_rshutdown_session_globals(TSRMLS_C);
 
        return SUCCESS;
 }