On 8/1/23 16:27, Helge Deller wrote:
From: Akihiko Odaki <akihiko.od...@daynix.com>

Passing MAP_FIXED_NOREPLACE to host will fail if the virtual
address space is reserved with mmap. Replace it with MAP_FIXED.

Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com>
Reviewed-by: Helge Deller <del...@gmx.de>
Signed-off-by: Helge Deller <del...@gmx.de>
---
  linux-user/mmap.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index a5dfb56545..2f26cbaf5d 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -610,6 +610,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int 
target_prot,
              goto fail;
          }

+        flags = (flags & ~MAP_FIXED_NOREPLACE) | MAP_FIXED;


Again, this must be restricted to reserved_va == 0 or 64-bit guests will fail.


r~

+
          /*
           * worst case: we cannot map the file because the offset is not
           * aligned, so we read it
--
2.41.0



Reply via email to