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

index 2490572b17eab673be4d4a2509da26eb7f485d97..34d7794d39e43f6f8176d157fd62d56fe2b4896b 100644 (file)
@@ -1758,7 +1758,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));
@@ -1794,9 +1796,11 @@ 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);
-               PS(session_status)=php_session_none;
+       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();
        }
 }
 
@@ -1809,10 +1813,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;
 }