From: Lennart Poettering Date: Tue, 13 Apr 2010 02:07:19 +0000 (+0200) Subject: main: try to block signals before executing crash shell X-Git-Tag: 0.git+20100605+dfd8ee-1~135 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c43883a682b2edd902b170ab2e0f3d50d7e92e0;p=systemd main: try to block signals before executing crash shell --- diff --git a/main.c b/main.c index 3e2bfe10..6a3eee2e 100644 --- a/main.c +++ b/main.c @@ -110,9 +110,17 @@ _noreturn static void crash(int sig) { chvt(crash_chvt); if (crash_shell) { + sigset_t mask; + log_info("Executing crash shell in 10s..."); sleep(10); + /* Make sure the signal is not delivered inside the + * exec() */ + assert_se(sigemptyset(&mask) == 0); + assert_se(sigaddset(&mask, sig) == 0); + assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0); + execl("/bin/sh", "/bin/sh", NULL); log_error("execl() failed: %s", strerror(errno)); }