summaryrefslogtreecommitdiff
path: root/src/rc/rc-misc.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-02-02 00:17:35 +0000
committerRoy Marples <roy@marples.name>2008-02-02 00:17:35 +0000
commitad045176238549c3267fff3e8c0014dd5e9ffbdf (patch)
tree8332746190f8e9fc47007090a3beac0a64d133c6 /src/rc/rc-misc.c
parentfef5d0af591c6c8a91f69bba5e62c99df1a732c9 (diff)
downloadopenrc-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.c7
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));
}