From: Michael Tremer Date: Sat, 5 Oct 2024 17:38:24 +0000 (+0000) Subject: jail: Block SIGCHLD X-Git-Tag: 0.9.30~1143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8abad4089c4c1b8ec1c8c297b1ee55f269fa31f9;p=pakfire.git jail: Block SIGCHLD Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/jail.c b/src/libpakfire/jail.c index 5cf17bbc2..7be231bda 100644 --- a/src/libpakfire/jail.c +++ b/src/libpakfire/jail.c @@ -1781,6 +1781,12 @@ static int pakfire_jail_wait_for_signal(struct pakfire_jail* jail, int fd) { return r; } +// This is only to block the signal +static int pakfire_jail_SIGCHLD(sd_event_source* source, + const struct signalfd_siginfo* si, void* data) { + return 0; +} + /* Called when the timer has expired. */ @@ -2238,6 +2244,14 @@ PAKFIRE_EXPORT int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv goto ERROR; } + // Listen for SIGCHLD + r = sd_event_add_signal(ctx.loop, NULL, SIGCHLD|SD_EVENT_SIGNAL_PROCMASK, + pakfire_jail_SIGCHLD, NULL); + if (r < 0) { + CTX_ERROR(jail->ctx, "Could not register handling SIGCHLD: %s\n", strerror(-r)); + goto ERROR; + } + // Enable networking in interactive mode if (ctx.flags & PAKFIRE_JAIL_PTY_FORWARDING) ctx.flags |= PAKFIRE_JAIL_HAS_NETWORKING;