mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:27:35 +00:00
Emulator: Use libc.so bounds to fast-reject non-malloc addresses
The auditing code always starts by checking if we're in one of the ignored code ranges (malloc, free, realloc, syscall, etc.) To reduce the number of checks needed, we can cache the bounds of the LibC text segment. This allows us to fast-reject addresses that cannot possibly be a LibC function.
This commit is contained in:
parent
0c46918b73
commit
c192b6c61d
2 changed files with 12 additions and 0 deletions
|
@ -1054,6 +1054,8 @@ u32 Emulator::virt$mmap(u32 params_addr)
|
|||
} else {
|
||||
auto region = MmapRegion::create_file_backed(final_address, final_size, params.prot, params.flags, params.fd, params.offset, move(name_str));
|
||||
if (region->name() == "libc.so: .text") {
|
||||
m_libc_start = final_address;
|
||||
m_libc_end = final_address + final_size;
|
||||
bool rc = find_malloc_symbols(*region);
|
||||
VERIFY(rc);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue