From 441e04076adc36add6ef9332b0af1319b3a04fa2 Mon Sep 17 00:00:00 2001 From: apio Date: Fri, 22 Sep 2023 22:40:24 +0200 Subject: [PATCH] kernel: Do not allow sending signals to dying threads This was causing a kernel panic when closing the terminal by directly exiting the shell (either EOF or the exit command) --- kernel/src/thread/Thread.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/src/thread/Thread.cpp b/kernel/src/thread/Thread.cpp index ebac3c37..3b030fa6 100644 --- a/kernel/src/thread/Thread.cpp +++ b/kernel/src/thread/Thread.cpp @@ -207,6 +207,7 @@ bool Thread::will_ignore_pending_signal() void Thread::send_signal(int signo) { if (is_kernel) return; + if (state == ThreadState::Exited || state == ThreadState::Dying) return; check(signo > 0 && signo <= NSIG); pending_signals.set(signo - 1, true);