]> Zhao Yanbai Git Server - minix.git/commitdiff
Fix signal handling for services on abort/exit 76/376/2
authorLionel Sambuc <lionel@minix3.org>
Thu, 28 Feb 2013 14:41:39 +0000 (15:41 +0100)
committerLionel Sambuc <lionel@minix3.org>
Thu, 7 Mar 2013 12:11:31 +0000 (13:11 +0100)
Change-Id: I970a25ae0dd52f0d928fda376296e7b39e3e17eb

lib/libc/misc/stack_protector.c
lib/libc/stdlib/abort.c

index ff26160c1ca4accaa9387e978c94d4e1c1f2a04d..6569de866ce8d05652f7c880ee0ad544e7da470d 100644 (file)
@@ -86,7 +86,6 @@ __fail(const char *msg)
 #ifdef _LIBC
        struct syslog_data sdata = SYSLOG_DATA_INIT;
        struct sigaction sa;
-#endif
        sigset_t mask;
 
        /* Immediately block all signal handlers from running code */
@@ -94,7 +93,6 @@ __fail(const char *msg)
        (void)sigdelset(&mask, SIGABRT);
        (void)sigprocmask(SIG_BLOCK, &mask, NULL);
 
-#ifdef _LIBC
        /* This may fail on a chroot jail... */
        syslog_ss(LOG_CRIT, &sdata, "%s", msg);
 #else
index 7f46b9ea0cd1c098c5d8fb22596a9f5465658807..1d14df6ac5844ed82aa71e1bfdfd66382d1cf4ab 100644 (file)
@@ -43,6 +43,7 @@ __RCSID("$NetBSD: abort.c,v 1.15 2012/06/08 11:15:26 abs Exp $");
 #include <stdlib.h>
 #include <unistd.h>
 
+#if defined(_LIBC)
 extern void (*__cleanup)(void);
 static int aborting = 0;
 
@@ -82,3 +83,10 @@ abort(void)
        (void)raise(SIGABRT);
        _exit(1);
 }
+#else
+void
+abort(void)
+{
+       exit(1);
+}
+#endif /* defined(_LIBC) */