From 1b313df419288aae3f752404693b42601075f39a Mon Sep 17 00:00:00 2001 From: Benjamin Lamowski Date: Mon, 18 Mar 2024 11:55:09 +0100 Subject: [PATCH] linux: force stack area mapping at requested address With `MAP_FIXED` absent from the mmap(3p) flags, "the implementation uses addr in an implementation-defined manner to arrive at pa", which may lead to a mapping at an address diffent to the requested `addr`. Add `MAP_FIXED` to the mmmap flags to force mapping to the specified address. Fixes #5147 --- repos/base-linux/src/include/base/internal/stack_area.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/base-linux/src/include/base/internal/stack_area.h b/repos/base-linux/src/include/base/internal/stack_area.h index 767da7f143..e5e90cfa9b 100644 --- a/repos/base-linux/src/include/base/internal/stack_area.h +++ b/repos/base-linux/src/include/base/internal/stack_area.h @@ -61,7 +61,7 @@ static inline Genode::addr_t reserve_stack_area() using namespace Genode; using Genode::size_t; - int const flags = MAP_ANONYMOUS | MAP_PRIVATE; + int const flags = MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED; int const prot = PROT_NONE; size_t const size = stack_area_virtual_size(); void * const addr_in = (void *)stack_area_virtual_base();