diff options
author | Roy Marples <roy@marples.name> | 2008-02-02 00:17:35 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-02-02 00:17:35 +0000 |
commit | ad045176238549c3267fff3e8c0014dd5e9ffbdf (patch) | |
tree | 8332746190f8e9fc47007090a3beac0a64d133c6 /src/rc/rc-misc.c | |
parent | fef5d0af591c6c8a91f69bba5e62c99df1a732c9 (diff) | |
download | openrc-ad045176238549c3267fff3e8c0014dd5e9ffbdf.tar.gz openrc-ad045176238549c3267fff3e8c0014dd5e9ffbdf.tar.bz2 openrc-ad045176238549c3267fff3e8c0014dd5e9ffbdf.tar.xz |
Block signals to avoid fork /signal races.
Diffstat (limited to 'src/rc/rc-misc.c')
-rw-r--r-- | src/rc/rc-misc.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/rc/rc-misc.c b/src/rc/rc-misc.c index 50101b4..59a5261 100644 --- a/src/rc/rc-misc.c +++ b/src/rc/rc-misc.c @@ -432,13 +432,12 @@ bool service_plugable (const char *service) return (allow); } -void signal_setup (int sig, void (*handler)(int)) +int signal_setup (int sig, void (*handler)(int)) { struct sigaction sa; memset (&sa, 0, sizeof (sa)); - sa.sa_handler = handler; sigemptyset (&sa.sa_mask); - if (sigaction (sig, &sa, NULL) == -1) - eerrorx ("sigaction: %s", strerror (errno)); + sa.sa_handler = handler; + return (sigaction (sig, &sa, NULL)); } |