summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2011-10-16 03:00:51 +0000
committerXinchen Hui <laruence@php.net>2011-10-16 03:00:51 +0000
commit077519d3fbe3aca87f392993c81f526ef2c6b635 (patch)
tree81ec7e6d18742c7cd1c7e63e2a7b5ab1f78525a3
parent50339d8cf130db612ef90a29a3be00bf77868bf4 (diff)
downloadphp-git-077519d3fbe3aca87f392993c81f526ef2c6b635.tar.gz
Fixed bug #60038 (SIGALRM cause segfault in php_error_cb)
-rw-r--r--main/main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/main/main.c b/main/main.c
index 67d2ff1b1e..cc7c078539 100644
--- a/main/main.c
+++ b/main/main.c
@@ -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";
}