From e926f5f001da22ef457fb29aafac8c1af3e38a01 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sun, 18 Nov 2018 14:48:42 +0000 Subject: [PATCH] Error handling for sigset functions. Yes, they are allowed to return errors. Even sigemptyset(). --- clunk.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/clunk.c b/clunk.c index 4d62324..e149156 100644 --- 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"); -- 2.30.2