From 5c2a296a49c96376a54bc712fb8f31171724a418 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 1 Mar 2020 21:25:23 +0100 Subject: [PATCH] Kernel: Mark read-only PT_LOAD mappings as shared regions This makes Region::clone() do the right thing for these now that we differentiate based on Region::is_shared(). --- Kernel/Process.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 74f699393f..85095c7ac9 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -887,8 +887,10 @@ int Process::do_exec(NonnullRefPtr main_program_description, Ve prot |= PROT_WRITE; if (is_executable) prot |= PROT_EXEC; - if (auto* region = allocate_region_with_vmobject(vaddr.offset(totally_random_offset), size, *vmobject, offset_in_image, String(name), prot)) + if (auto* region = allocate_region_with_vmobject(vaddr.offset(totally_random_offset), size, *vmobject, offset_in_image, String(name), prot)) { + region->set_shared(true); return region->vaddr().as_ptr(); + } return nullptr; }; loader->alloc_section_hook = [&](VirtualAddress vaddr, size_t size, size_t alignment, bool is_readable, bool is_writable, const String& name) -> u8* {