From 154d10e4e9106a9e2ead48a33e0bd3c0c6e57ed5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 26 Dec 2019 22:20:39 +0100 Subject: [PATCH] Kernel: Process::for_each_in_pgrp() should not include dead processes We don't care about dead processes that were once members of a specific process group. This was causing us to try and send SIGINT to already-dead processes when pressing Ctrl+C in a terminal whose pgrp they were once in. Fixes #922. --- Kernel/Process.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Process.h b/Kernel/Process.h index 191f72fe9b..e4ceb9e823 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -487,7 +487,7 @@ inline void Process::for_each_in_pgrp(pid_t pgid, Callback callback) ASSERT_INTERRUPTS_DISABLED(); for (auto* process = g_processes->head(); process;) { auto* next_process = process->next(); - if (process->pgid() == pgid) { + if (!process->is_dead() && process->pgid() == pgid) { if (callback(*process) == IterationDecision::Break) break; }