summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/execute.c10
-rw-r--r--src/execute.h2
-rw-r--r--src/main.c2
3 files changed, 8 insertions, 6 deletions
diff --git a/src/execute.c b/src/execute.c
index ead6c0fa42..1b37f2efe4 100644
--- a/src/execute.c
+++ b/src/execute.c
@@ -783,10 +783,12 @@ int exec_spawn(ExecCommand *command,
/* child */
- /* We reset exactly these two signals, since they are
- * the only ones we set to SIG_IGN in the main
- * daemon. All others */
- default_signals(SIGNALS_CRASH_HANLDER,
+ /* We reset exactly these signals, since they are the
+ * only ones we set to SIG_IGN in the main daemon. All
+ * others we leave untouched because we set them to
+ * SIG_DFL or a valid handler initially, both of which
+ * will be demoted to SIG_DFL. */
+ default_signals(SIGNALS_CRASH_HANDLER,
SIGNALS_IGNORE, -1);
if (sigemptyset(&ss) < 0 ||
diff --git a/src/execute.h b/src/execute.h
index 045d4620d7..4585fe43a7 100644
--- a/src/execute.h
+++ b/src/execute.h
@@ -42,7 +42,7 @@ struct CGroupBonding;
#define LOGGER_SOCKET "/org/freedesktop/systemd1/logger"
/* This doesn't really belong here, but I couldn't find a better place to put this. */
-#define SIGNALS_CRASH_HANLDER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
+#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
#define SIGNALS_IGNORE SIGKILL,SIGPIPE
typedef enum ExecInput {
diff --git a/src/main.c b/src/main.c
index 5c2af042d9..3b9719fb56 100644
--- a/src/main.c
+++ b/src/main.c
@@ -165,7 +165,7 @@ static void install_crash_handler(void) {
sa.sa_handler = crash;
sa.sa_flags = SA_NODEFER;
- sigaction_many(&sa, SIGNALS_CRASH_HANLDER, -1);
+ sigaction_many(&sa, SIGNALS_CRASH_HANDLER, -1);
}
static int make_null_stdio(void) {