From: Lennart Poettering Date: Tue, 26 Aug 2014 19:11:35 +0000 (+0200) Subject: util: make use of newly added reset_signal_mask() call wherever appropriate X-Git-Tag: v217~760 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1b6d7fa742e303611dff8d7ebfa86ee5fb8b7dc7 util: make use of newly added reset_signal_mask() call wherever appropriate --- diff --git a/src/core/execute.c b/src/core/execute.c index b5b22472d..066efd6fd 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -1301,7 +1301,6 @@ int exec_spawn(ExecCommand *command, int dont_close[n_fds + 3]; uid_t uid = (uid_t) -1; gid_t gid = (gid_t) -1; - sigset_t ss; int i, err; /* child */ @@ -1319,9 +1318,8 @@ int exec_spawn(ExecCommand *command, if (context->ignore_sigpipe) ignore_signals(SIGPIPE, -1); - assert_se(sigemptyset(&ss) == 0); - if (sigprocmask(SIG_SETMASK, &ss, NULL) < 0) { - err = -errno; + err = reset_signal_mask(); + if (err < 0) { r = EXIT_SIGNAL_MASK; goto fail_child; } diff --git a/src/core/main.c b/src/core/main.c index bd148b1b3..95ab40fff 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1834,7 +1834,6 @@ finish: if (reexecute) { const char **args; unsigned i, args_size; - sigset_t ss; /* Close and disarm the watchdog, so that the new * instance can reinitialize it, but doesn't get @@ -1918,12 +1917,10 @@ finish: args[i++] = NULL; assert(i <= args_size); - /* reenable any blocked signals, especially important + /* Reenable any blocked signals, especially important * if we switch from initial ramdisk to init=... */ reset_all_signal_handlers(); - - assert_se(sigemptyset(&ss) == 0); - assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); + reset_signal_mask(); if (switch_root_init) { args[0] = switch_root_init; diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 2c718557e..56d9cc68c 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -3156,9 +3156,7 @@ int main(int argc, char *argv[]) { kmsg_socket_pair[0] = safe_close(kmsg_socket_pair[0]); reset_all_signal_handlers(); - - assert_se(sigemptyset(&mask) == 0); - assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0); + reset_signal_mask(); k = open_terminal(console, O_RDWR); if (k != STDIN_FILENO) { diff --git a/src/shared/util.c b/src/shared/util.c index 98c07163d..fdcf5719f 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -3890,16 +3890,13 @@ void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv _cleanup_hashmap_free_free_ Hashmap *pids = NULL; _cleanup_closedir_ DIR *_d = NULL; struct dirent *de; - sigset_t ss; /* We fork this all off from a child process so that * we can somewhat cleanly make use of SIGALRM to set * a time limit */ reset_all_signal_handlers(); - - assert_se(sigemptyset(&ss) == 0); - assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); + reset_signal_mask(); assert_se(prctl(PR_SET_PDEATHSIG, SIGTERM) == 0);