Explorar o código

Kernel: Remove alternative signal stack settings on execve(2)

A successful call to execve(2) removes any existing alternate signal
stack.
Idan Horowitz %!s(int64=3) %!d(string=hai) anos
pai
achega
31fa3f8b1b
Modificáronse 1 ficheiros con 3 adicións e 0 borrados
  1. 3 0
      Kernel/Thread.cpp

+ 3 - 0
Kernel/Thread.cpp

@@ -685,6 +685,9 @@ void Thread::clear_signals()
     m_pending_signals = 0;
     m_pending_signals = 0;
     m_have_any_unmasked_pending_signals.store(false, AK::memory_order_release);
     m_have_any_unmasked_pending_signals.store(false, AK::memory_order_release);
     m_signal_action_data.fill({});
     m_signal_action_data.fill({});
+    // A successful call to execve(2) removes any existing alternate signal stack
+    m_alternative_signal_stack = 0;
+    m_alternative_signal_stack_size = 0;
 }
 }
 
 
 // Certain exceptions, such as SIGSEGV and SIGILL, put a
 // Certain exceptions, such as SIGSEGV and SIGILL, put a