Message ID | 20230731080317.112658-2-akihiko.odaki@daynix.com |
---|---|
State | New |
Headers | show |
Series | linux-user: brk/mmap fixes | expand |
On 7/31/23 01:03, Akihiko Odaki wrote: > 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.odaki@daynix.com> > --- > 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; This is wrong for 64-bit guests, when reserved_va is not in effect. r~
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; + /* * worst case: we cannot map the file because the offset is not * aligned, so we read it
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.odaki@daynix.com> --- linux-user/mmap.c | 2 ++ 1 file changed, 2 insertions(+)