mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:37:35 +00:00
Kernel: Prevent execve/ptrace race
Add a per-process ptrace lock and use it to prevent ptrace access to a process after it decides to commit to a new executable in sys$execve(). Fixes #5230.
This commit is contained in:
parent
4b7b92c201
commit
4ff0f971f7
3 changed files with 8 additions and 4 deletions
|
@ -408,10 +408,8 @@ public:
|
|||
return m_thread_count.load(AK::MemoryOrder::memory_order_relaxed);
|
||||
}
|
||||
|
||||
Lock& big_lock()
|
||||
{
|
||||
return m_big_lock;
|
||||
}
|
||||
Lock& big_lock() { return m_big_lock; }
|
||||
Lock& ptrace_lock() { return m_ptrace_lock; }
|
||||
|
||||
Custody& root_directory();
|
||||
Custody& root_directory_relative_to_global_root();
|
||||
|
@ -579,6 +577,7 @@ private:
|
|||
size_t m_master_tls_alignment { 0 };
|
||||
|
||||
Lock m_big_lock { "Process" };
|
||||
Lock m_ptrace_lock { "ptrace" };
|
||||
|
||||
RefPtr<Timer> m_alarm_timer;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue