diff --git a/NEWS b/NEWS index f1c8cfd8ff19b..6432c90ddde7a 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ PHP NEWS - Core: . Fixed bug GH-9388 (Improve unset property and __get type incompatibility error message). (ilutov) + . SA_ONSTACK is now set for signal handlers to be friendlier to other + in-process code such as Go's cgo. (Kévin Dunglas) - Opcache: . Added start, restart and force restart time to opcache's diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c index 68bc3de3ff252..be48a91d3d88b 100644 --- a/Zend/zend_signal.c +++ b/Zend/zend_signal.c @@ -248,7 +248,7 @@ ZEND_API void zend_sigaction(int signo, const struct sigaction *act, struct siga if (SIGG(handlers)[signo-1].handler == (void *) SIG_IGN) { sa.sa_sigaction = (void *) SIG_IGN; } else { - sa.sa_flags = SA_SIGINFO | (act->sa_flags & SA_FLAGS_MASK); + sa.sa_flags = SA_ONSTACK | SA_SIGINFO | (act->sa_flags & SA_FLAGS_MASK); sa.sa_sigaction = zend_signal_handler_defer; sa.sa_mask = global_sigmask; }