aboutsummaryrefslogtreecommitdiff
path: root/src/sig_handlers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sig_handlers.c')
-rw-r--r--src/sig_handlers.c37
1 files changed, 0 insertions, 37 deletions
diff --git a/src/sig_handlers.c b/src/sig_handlers.c
deleted file mode 100644
index 3274482..0000000
--- a/src/sig_handlers.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-static void abnormal_termination_handler(int signo) {
- psignal(signo, "");
- exit(signo);
-}
-
-static void __attribute__((constructor)) register_handlers(void)
-{
- struct sigaction sa, old_sa;
- sa.sa_handler = abnormal_termination_handler;
- sigemptyset(&sa.sa_mask);
-
- sigaction(SIGABRT, NULL, &old_sa);
- if (old_sa.sa_handler == SIG_DFL) {
- if (sigaction(SIGABRT, &sa, NULL) == -1) {
- perror("sigaction");
- exit(1);
- }
- } else {
- fprintf(stderr, "SIGABRT handler already set");
- }
-
- sigaction(SIGSEGV, NULL, &old_sa);
- if (old_sa.sa_handler == SIG_DFL) {
- if (sigaction(SIGSEGV, &sa, NULL) == -1) {
- perror("sigaction");
- exit(1);
- }
- } else {
- fprintf(stderr, "SIGSEGV handler already set");
- }
-}
-