diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-05-31 23:55:55 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-06-10 01:28:58 +0200 |
commit | ce30c8dcb41dfe9264f79f30c7f51c0e74576638 (patch) | |
tree | 2d5c05e1225b43ec3d9870316899c1e87f7f381d /src/activate | |
parent | 0c2c2a3aeb4c348e41d5d634c397faa3aa35cba7 (diff) | |
download | systemd-ce30c8dcb41dfe9264f79f30c7f51c0e74576638.tar.gz systemd-ce30c8dcb41dfe9264f79f30c7f51c0e74576638.tar.bz2 systemd-ce30c8dcb41dfe9264f79f30c7f51c0e74576638.zip |
tree-wide: whenever we fork off a foreign child process reset signal mask/handlers
Also, when the child is potentially long-running make sure to set a
death signal.
Also, ignore the result of the reset operations explicitly by casting
them to (void).
Diffstat (limited to 'src/activate')
-rw-r--r-- | src/activate/activate.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/activate/activate.c b/src/activate/activate.c index d345e28567..5318829442 100644 --- a/src/activate/activate.c +++ b/src/activate/activate.c @@ -33,6 +33,7 @@ #include "log.h" #include "strv.h" #include "macro.h" +#include "signal-util.h" static char** arg_listen = NULL; static bool arg_accept = false; @@ -192,6 +193,10 @@ static int launch1(const char* child, char** argv, char **env, int fd) { /* In the child */ if (child_pid == 0) { + + (void) reset_all_signal_handlers(); + (void) reset_signal_mask(); + r = dup2(fd, STDIN_FILENO); if (r < 0) { log_error_errno(errno, "Failed to dup connection to stdin: %m"); |