From: Zeev Suraski Date: Thu, 31 Aug 2000 16:02:51 +0000 (+0000) Subject: Safer shutdown process. Continue to shut down even if we bail out in the middle... X-Git-Tag: php-4.0.3RC1~400 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0bc2bb05d4b0053db86f92ca23538e47637876ab;p=php Safer shutdown process. Continue to shut down even if we bail out in the middle of a certain part. --- diff --git a/main/main.c b/main/main.c index 735d6c1b3c..a6afda0064 100644 --- a/main/main.c +++ b/main/main.c @@ -636,28 +636,43 @@ void php_request_shutdown(void *dummy) SLS_FETCH(); PLS_FETCH(); - if (setjmp(EG(bailout))!=0) { - return; + if (setjmp(EG(bailout)==0) { + sapi_send_headers(); } - sapi_send_headers(); - php_end_ob_buffers(SG(request_info).headers_only?0:1); + if (setjmp(EG(bailout)==0) { + php_end_ob_buffers(SG(request_info).headers_only?0:1); + } - php_call_shutdown_functions(); + if (setjmp(EG(bailout)==0) { + php_call_shutdown_functions(); + } if (PG(modules_activated)) { zend_deactivate_modules(); } - php_ini_rshutdown(); + if (setjmp(EG(bailout)==0) { + php_ini_rshutdown(); + } zend_deactivate(CLS_C ELS_CC); - sapi_deactivate(SLS_C); - shutdown_memory_manager(CG(unclean_shutdown), 0); - zend_unset_timeout(); + if (setjmp(EG(bailout)==0) { + sapi_deactivate(SLS_C); + } + + if (setjmp(EG(bailout)==0) { + shutdown_memory_manager(CG(unclean_shutdown), 0); + } - global_unlock(); + if (setjmp(EG(bailout)==0) { + zend_unset_timeout(); + } + + if (setjmp(EG(bailout)==0) { + global_unlock(); + } }