[PATCH xserver] os: Handle SIGABRT
Michel Dänzer
michel at daenzer.net
Thu Apr 20 04:01:15 UTC 2017
From: Michel Dänzer <michel.daenzer at amd.com>
Without this, assertion failures make life hard for users and those
trying to help them.
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
os/osinit.c | 1 +
os/utils.c | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/os/osinit.c b/os/osinit.c
index 5b2f6b546..cd769d181 100644
--- a/os/osinit.c
+++ b/os/osinit.c
@@ -173,6 +173,7 @@ OsInit(void)
int i;
int siglist[] = { SIGSEGV, SIGQUIT, SIGILL, SIGFPE, SIGBUS,
+ SIGABRT,
SIGSYS,
SIGXCPU,
SIGXFSZ,
diff --git a/os/utils.c b/os/utils.c
index 3f8bac5c6..226b9c817 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -1353,6 +1353,12 @@ OsAbort(void)
#ifndef __APPLE__
OsBlockSignals();
#endif
+#if !defined(WIN32) || defined(__CYGWIN__)
+ /* abort() raises SIGABRT, so we have to stop handling that to prevent
+ * recursion
+ */
+ OsSignal(SIGABRT, SIG_DFL);
+#endif
abort();
}
--
2.11.0
More information about the xorg-devel
mailing list