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;
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 :
}
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;
}