mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-21 15:14:13 +00:00
Kernel: Clear the region lookup cache on exec()
Each process has a 1-level lookup cache for fast repeated lookups of the same VM region (which tends to be the majority of lookups.) The cache is used by the following syscalls: munmap, madvise, mprotect and set_mmap_name. After a succesful exec(), there could be a stale Region* in the lookup cache, and the new executable was able to manipulate it using a number of use-after-free code paths.
This commit is contained in:
@@ -952,6 +952,8 @@ int Process::do_exec(NonnullRefPtr<FileDescription> main_program_description, Ve
|
||||
|
||||
m_futex_queues.clear();
|
||||
|
||||
m_region_lookup_cache = {};
|
||||
|
||||
disown_all_shared_buffers();
|
||||
|
||||
for (int i = 0; i < m_fds.size(); ++i) {
|
||||
|
||||
Reference in New Issue
Block a user