]> granicus.if.org Git - php/commitdiff
Remove bogus zend_signal_shutdown symbol from header
authorBob Weinand <bobwei9@hotmail.com>
Tue, 12 Jul 2016 23:05:32 +0000 (01:05 +0200)
committerBob Weinand <bobwei9@hotmail.com>
Tue, 12 Jul 2016 23:05:32 +0000 (01:05 +0200)
Zend/zend_signal.h
sapi/phpdbg/phpdbg.c

index f9662b8d9463403217a4f82ab4997c0d35da7240..b58115b1975ef9183cc4352515494b7081de4a0e 100644 (file)
@@ -90,7 +90,6 @@ void zend_signal_activate(void);
 void zend_signal_deactivate(void);
 void zend_signal_startup(void);
 void zend_signal_init(void);
-void zend_signal_shutdown(void);
 
 ZEND_API int zend_signal(int signo, void (*handler)(int));
 ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact);
@@ -104,7 +103,6 @@ ZEND_API int zend_sigaction(int signo, const struct sigaction *act, struct sigac
 # define zend_signal_deactivate()
 # define zend_signal_startup()
 # define zend_signal_init()
-# define zend_signal_shutdown()
 
 # define zend_signal(signo, handler)           signal(signo, handler)
 # define zend_sigaction(signo, act, oldact)    sigaction(signo, act, oldact)
index d851e0b0823b9efb552d74e22b359fc238416338..1e0b214a2358b6d69aa71ebe8a25f097eef4146d 100644 (file)
@@ -1738,7 +1738,7 @@ phpdbg_main:
                /* setup io here */
                if (remote) {
                        PHPDBG_G(flags) |= PHPDBG_IS_REMOTE;
-                       signal(SIGPIPE, SIG_IGN);
+                       zend_signal(SIGPIPE, SIG_IGN);
                }
                PHPDBG_G(io)[PHPDBG_STDIN].ptr = stdin;
                PHPDBG_G(io)[PHPDBG_STDIN].fd = fileno(stdin);
@@ -1968,6 +1968,10 @@ phpdbg_out:
                        zend_objects_store_mark_destructed(&EG(objects_store));
                }
 
+               zend_try {
+                       php_request_shutdown(NULL);
+               } zend_end_try();
+
                /* backup globals when cleaning */
                if ((cleaning > 0 || remote) && !quit_immediately) {
                        settings = calloc(1, sizeof(zend_phpdbg_globals));
@@ -1995,10 +1999,6 @@ phpdbg_out:
                        }
                }
 
-               zend_try {
-                       php_request_shutdown(NULL);
-               } zend_end_try();
-
                if (exit_status == 0) {
                        exit_status = EG(exit_status);
                }
@@ -2020,6 +2020,7 @@ phpdbg_out:
                } zend_end_try();
 
 #ifndef _WIN32
+               /* force override (no zend_signals) to prevent crashes due to signal recursion in SIGSEGV/SIGBUS handlers */
                signal(SIGSEGV, SIG_DFL);
                signal(SIGBUS, SIG_DFL);
 
@@ -2038,8 +2039,6 @@ phpdbg_out:
                free(sapi_name);
        }
 
-       zend_signal_shutdown();
-
 #ifdef ZTS
        tsrm_shutdown();
 #endif