From e04e52186d5d4c4c0eb2f29420a8a59a64869a96 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 24 Jan 2022 17:16:52 +0100 Subject: [PATCH] Kernel: Don't send crash signal to process itself when it has no handler If there's nobody listening for the crash signal, fall back to the normal crash path where we get some debug output about what happened. Thanks to Idan for suggesting the fix. --- Kernel/Arch/x86/common/Interrupts.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Arch/x86/common/Interrupts.cpp b/Kernel/Arch/x86/common/Interrupts.cpp index 88dddd5d78..0575154b60 100644 --- a/Kernel/Arch/x86/common/Interrupts.cpp +++ b/Kernel/Arch/x86/common/Interrupts.cpp @@ -220,7 +220,7 @@ void handle_crash(RegisterState const& regs, char const* description, int signal PANIC("{} with !Thread::current()", description); auto crashed_in_kernel = (regs.cs & 3) == 0; - if (!crashed_in_kernel && !current_thread->should_ignore_signal(signal) && !current_thread->is_signal_masked(signal)) { + if (!crashed_in_kernel && current_thread->has_signal_handler(signal) && !current_thread->should_ignore_signal(signal) && !current_thread->is_signal_masked(signal)) { current_thread->send_urgent_signal_to_self(signal); return; }