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

index b44e52f56651bc874d828dc60ded84ada78ce9e3..2b7df6406f96d73ace26a4d74e809176d329852d 100644 (file)
@@ -1756,7 +1756,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));
@@ -1792,9 +1794,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();
        }
 }
 
@@ -1807,10 +1811,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;
 }