Fix signal handling for services on abort/exit

Change-Id: I970a25ae0dd52f0d928fda376296e7b39e3e17eb
This commit is contained in:
Lionel Sambuc 2013-02-28 15:41:39 +01:00
parent a9f55a2e46
commit b9674650f1
2 changed files with 8 additions and 2 deletions

View 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

View 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) */