From c482508aa1220005fb5b8487daa99790adf251ab Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 15 Jan 2022 17:06:11 +0100 Subject: [PATCH] LibELF: Use shared memory mapping when loading ELF objects There's no reason to make a private read-only mapping just for reading (and validating) the ELF headers, and copying out the data segments. --- Userland/Libraries/LibELF/DynamicLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibELF/DynamicLoader.cpp b/Userland/Libraries/LibELF/DynamicLoader.cpp index 200413d595..2e678dc5a1 100644 --- a/Userland/Libraries/LibELF/DynamicLoader.cpp +++ b/Userland/Libraries/LibELF/DynamicLoader.cpp @@ -49,7 +49,7 @@ Result, DlErrorMessage> DynamicLoader::try_create(i return DlErrorMessage { String::formatted("File {} has invalid ELF header", filename) }; String file_mmap_name = String::formatted("ELF_DYN: {}", filename); - auto* data = mmap_with_name(nullptr, size, PROT_READ, MAP_PRIVATE, fd, 0, file_mmap_name.characters()); + auto* data = mmap_with_name(nullptr, size, PROT_READ, MAP_SHARED, fd, 0, file_mmap_name.characters()); if (data == MAP_FAILED) { return DlErrorMessage { "DynamicLoader::try_create mmap" }; }