mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:47:44 +00:00
Kernel+LibELF: Enable SMAP protection during non-syscall exec()
When loading a new executable, we now map the ELF image in kernel-only memory and parse it there. Then we use copy_to_user() when initializing writable regions with data from the executable. Note that the exec() syscall still disables SMAP protection and will require additional work. This patch only affects kernel-originated process spawns.
This commit is contained in:
parent
66b0002acb
commit
197e73ee31
5 changed files with 20 additions and 10 deletions
|
@ -189,6 +189,13 @@ NonnullOwnPtr<Region> Region::create_kernel_only(const Range& range, const Strin
|
|||
return region;
|
||||
}
|
||||
|
||||
NonnullOwnPtr<Region> Region::create_kernel_only(const Range& range, NonnullRefPtr<VMObject> vmobject, size_t offset_in_vmobject, const StringView& name, u8 access)
|
||||
{
|
||||
auto region = make<Region>(range, move(vmobject), offset_in_vmobject, name, access);
|
||||
region->m_user_accessible = false;
|
||||
return region;
|
||||
}
|
||||
|
||||
bool Region::should_cow(size_t page_index) const
|
||||
{
|
||||
if (m_shared)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue