diff --git a/Kernel/Syscalls/execve.cpp b/Kernel/Syscalls/execve.cpp index a2bbb92765..eb7946f6fa 100644 --- a/Kernel/Syscalls/execve.cpp +++ b/Kernel/Syscalls/execve.cpp @@ -524,7 +524,7 @@ ErrorOr Process::do_exec(NonnullRefPtr main_program_d property = {}; auto* current_thread = Thread::current(); - current_thread->clear_signals(); + current_thread->reset_signals_for_exec(); clear_futex_queues_on_exec(); diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index e097849b93..85d087ffce 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -678,11 +678,11 @@ u32 Thread::signal_mask_block(sigset_t signal_set, bool block) return previous_signal_mask; } -void Thread::clear_signals() +void Thread::reset_signals_for_exec() { SpinlockLocker lock(g_scheduler_lock); // The signal mask is preserved across execve(2). - m_pending_signals = 0; + // The pending signal set is preserved across an execve(2). m_have_any_unmasked_pending_signals.store(false, AK::memory_order_release); m_signal_action_data.fill({}); // A successful call to execve(2) removes any existing alternate signal stack diff --git a/Kernel/Thread.h b/Kernel/Thread.h index 50a5a57032..a225191ca5 100644 --- a/Kernel/Thread.h +++ b/Kernel/Thread.h @@ -1010,7 +1010,7 @@ public: u32 update_signal_mask(u32 signal_mask); u32 signal_mask_block(sigset_t signal_set, bool block); u32 signal_mask() const; - void clear_signals(); + void reset_signals_for_exec(); ErrorOr peek_debug_register(u32 register_index); ErrorOr poke_debug_register(u32 register_index, FlatPtr data);