]> granicus.if.org Git - php/commitdiff
Safer shutdown process. Continue to shut down even if we bail out in the middle...
authorZeev Suraski <zeev@php.net>
Thu, 31 Aug 2000 16:02:51 +0000 (16:02 +0000)
committerZeev Suraski <zeev@php.net>
Thu, 31 Aug 2000 16:02:51 +0000 (16:02 +0000)
main/main.c

index 735d6c1b3c35e93e5d5b8875355fd79454e9873d..a6afda00648d5ad32c9170adff425c01873d52a6 100644 (file)
@@ -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();
+       }
 }