]> granicus.if.org Git - php/commitdiff
Fixed bug #60038 (SIGALRM cause segfault in php_error_cb)
authorXinchen Hui <laruence@php.net>
Sun, 16 Oct 2011 03:00:51 +0000 (03:00 +0000)
committerXinchen Hui <laruence@php.net>
Sun, 16 Oct 2011 03:00:51 +0000 (03:00 +0000)
NEWS
main/main.c

diff --git a/NEWS b/NEWS
index 032a40f977ab1aa64a76cee9400ce0ac48371cc5..6fe03ac40fe91d64c3eff45348474b4a41e8918c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,7 @@ PHP                                                                        NEWS
   . Fixed bug #55622 (memory corruption in parse_ini_string). (Pierre)
   . Fixed bug #55825 (Missing initial value of static locals in trait methods).
     (Laruence)
+  . Fixed bug #60038 (SIGALRM cause segfault in php_error_cb). (Laruence)
 
 - Openssl
 - Revert r313616 (When we have a blocking SSL socket, respect the timeout
index 67d2ff1b1e2d48d4fc7f33a50ec58744cd019120..cc7c0785394a28a7f98206b4b3a476d607aa8ab8 100644 (file)
@@ -900,6 +900,9 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
 
        /* store the error if it has changed */
        if (display) {
+#ifdef ZEND_SIGNALS
+               HANDLE_BLOCK_INTERRUPTIONS();   
+#endif
                if (PG(last_error_message)) {
                        free(PG(last_error_message));
                        PG(last_error_message) = NULL;
@@ -908,6 +911,9 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
                        free(PG(last_error_file));
                        PG(last_error_file) = NULL;
                }
+#ifdef ZEND_SIGNALS
+               HANDLE_UNBLOCK_INTERRUPTIONS();
+#endif
                if (!error_filename) {
                        error_filename = "Unknown";
                }