From 1c3f695d5a2aa14a9766a7e8478eaf9bdc9b6b8d Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Wed, 12 Aug 2026 10:04:50 +0200 Subject: [PATCH] Isolate child process group with setpgid to prevent double signal delivery --- cmdline/main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmdline/main.c b/cmdline/main.c index 8d1dfc33..b90620e6 100644 --- a/cmdline/main.c +++ b/cmdline/main.c @@ -387,6 +387,9 @@ int main(int argc, char* argv[]) if (pid == 0) { /* child process */ + /* isolate child in its own process group to prevent double signal delivery from terminal */ + setpgid(0, 0); + /* restore default signal handlers */ signal(SIGINT, SIG_DFL); signal(SIGQUIT, SIG_DFL); @@ -409,6 +412,9 @@ int main(int argc, char* argv[]) /* parent process */ int status; + /* set child process group in parent to prevent race condition */ + setpgid(pid, pid); + /* store child PID so signal handler can forward signals */ child_pid = pid;