From 67bc5e0bbdcf313b20b32069a5e9b9806f8bd790 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 27 Jan 2021 20:49:56 +0100 Subject: [PATCH] DynamicLoader: Pass MAP_FIXED to mmap() where applicable Otherwise the kernel is free to allocate a different address. --- Userland/Libraries/LibELF/DynamicLoader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibELF/DynamicLoader.cpp b/Userland/Libraries/LibELF/DynamicLoader.cpp index 1048cd57cb..2af228400b 100644 --- a/Userland/Libraries/LibELF/DynamicLoader.cpp +++ b/Userland/Libraries/LibELF/DynamicLoader.cpp @@ -276,7 +276,7 @@ void DynamicLoader::load_program_headers() requested_load_address, region->required_load_size(), region->mmap_prot(), - MAP_SHARED, + MAP_SHARED | MAP_FIXED, m_image_fd, region->offset(), String::formatted("{}: .text", m_filename).characters()); @@ -297,7 +297,7 @@ void DynamicLoader::load_program_headers() (u8*)text_segment_begin + m_text_segment_size, region->required_load_size(), region->mmap_prot(), - MAP_ANONYMOUS | MAP_PRIVATE, + MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, 0, 0, String::formatted("{}: .data", m_filename).characters());