chiark / gitweb /
Error handling for sigset functions.
authorBen Harris <bjh21@bjh21.me.uk>
Sun, 18 Nov 2018 14:48:42 +0000 (14:48 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Sun, 18 Nov 2018 14:48:53 +0000 (14:48 +0000)
Yes, they are allowed to return errors.  Even sigemptyset().

clunk.c

diff --git a/clunk.c b/clunk.c
index 4d62324a246a05248a22d014471d2fca19f9c204..e149156bd1f94c357dc94f46de7a1f33d17aecfd 100644 (file)
--- a/clunk.c
+++ b/clunk.c
@@ -140,15 +140,17 @@ init(int argc, char **argv)
        int opt;
 
        tzset();
-       sigemptyset(&signals_to_block);
-       sigaddset(&signals_to_block, SIGINT);
-       sigaddset(&signals_to_block, SIGTERM);
+       if (sigemptyset(&signals_to_block) != 0 ||
+           sigaddset(&signals_to_block, SIGINT) != 0 ||
+           sigaddset(&signals_to_block, SIGTERM) != 0)
+               err(1, "sigset");
        sev.sigev_notify = SIGEV_SIGNAL;
        sev.sigev_signo = SIGALRM;
        if (timer_create(CLOCK_MONOTONIC, &sev, &fallback_timer) != 0)
                err(1, "timer_create");
        sa.sa_handler = alrm_handler;
-       sigemptyset(&sa.sa_mask);
+       if (sigemptyset(&sa.sa_mask) != 0)
+               err(1, "sigemptyset");
        sa.sa_flags = 0;
        if (sigaction(SIGALRM, &sa, NULL) != 0)
                err(1, "sigaction");