diff --git a/src/basic/process-util.c b/src/basic/process-util.c index 7a4d0b30e4..77045e6aa8 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -1402,11 +1402,6 @@ int must_be_root(void) { return log_error_errno(SYNTHETIC_ERRNO(EPERM), "Need to be root."); } -static void restore_sigsetp(sigset_t **ssp) { - if (*ssp) - (void) sigprocmask(SIG_SETMASK, *ssp, NULL); -} - pid_t clone_with_nested_stack(int (*fn)(void *), int flags, void *userdata) { size_t ps; pid_t pid; @@ -1446,6 +1441,11 @@ pid_t clone_with_nested_stack(int (*fn)(void *), int flags, void *userdata) { return pid; } +static void restore_sigsetp(sigset_t **ssp) { + if (*ssp) + (void) sigprocmask(SIG_SETMASK, *ssp, NULL); +} + static int fork_flags_to_signal(ForkFlags flags) { return (flags & FORK_DEATHSIG_SIGTERM) ? SIGTERM : (flags & FORK_DEATHSIG_SIGINT) ? SIGINT : @@ -1498,8 +1498,8 @@ int safe_fork_full( } if (block_signals) { - if (sigprocmask(SIG_SETMASK, &ss, &saved_ss) < 0) - return log_full_errno(prio, errno, "Failed to set signal mask: %m"); + if (sigprocmask(SIG_BLOCK, &ss, &saved_ss) < 0) + return log_full_errno(prio, errno, "Failed to block signal mask: %m"); saved_ssp = &saved_ss; }