From 027603cbb80b2c9aadd71faaaf75e4912a55a9be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 18 Dec 2021 23:22:52 +0100 Subject: [PATCH] =?UTF-8?q?slave:=20re-use=20=E2=80=98struct=20sigaction?= =?UTF-8?q?=E2=80=99=20variable=20when=20resetting=20SIGHUP+SIGPIPE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- slave.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/slave.c b/slave.c index fa57b86e..c4c6d4d0 100644 --- a/slave.c +++ b/slave.c @@ -275,11 +275,13 @@ slave_spawn(int ptmx, int argc, const char *cwd, char *const *argv, } /* Restore signal mask, and SIG_IGN'd signals */ + const struct sigaction dfl = {.sa_handler = SIG_DFL}; sigset_t mask; sigemptyset(&mask); + if (sigprocmask(SIG_SETMASK, &mask, NULL) < 0 || - sigaction(SIGHUP, &(struct sigaction){.sa_handler = SIG_DFL}, NULL) < 0 || - sigaction(SIGPIPE, &(struct sigaction){.sa_handler = SIG_DFL}, NULL) < 0) + sigaction(SIGHUP, &dfl, NULL) < 0 || + sigaction(SIGPIPE, &dfl, NULL) < 0) { const int errno_copy = errno; LOG_ERRNO_P(errno, "failed to restore signals");