Message ID | 20230731080317.112658-5-akihiko.odaki@daynix.com |
---|---|
State | New |
Headers | show |
Series | linux-user: brk/mmap fixes | expand |
On 7/31/23 10:03, Akihiko Odaki wrote: > Linux 6.4.7 does nothing when a value smaller than the initial brk is > specified. > > Fixes: 86f04735ac ("linux-user: Fix brk() to release pages") > Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Reviewed-by: Helge Deller <deller@gmx.de> Helge > --- > linux-user/syscall.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index ac429a185a..ebdc8c144c 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -820,14 +820,14 @@ abi_long do_brk(abi_ulong brk_val) > > /* brk pointers are always untagged */ > > - /* return old brk value if brk_val unchanged or zero */ > - if (!brk_val || brk_val == target_brk) { > + /* return old brk value if brk_val unchanged */ > + if (brk_val == target_brk) { > return target_brk; > } > > /* do not allow to shrink below initial brk value */ > if (brk_val < initial_target_brk) { > - brk_val = initial_target_brk; > + return target_brk; > } > > new_brk = TARGET_PAGE_ALIGN(brk_val);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ac429a185a..ebdc8c144c 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -820,14 +820,14 @@ abi_long do_brk(abi_ulong brk_val) /* brk pointers are always untagged */ - /* return old brk value if brk_val unchanged or zero */ - if (!brk_val || brk_val == target_brk) { + /* return old brk value if brk_val unchanged */ + if (brk_val == target_brk) { return target_brk; } /* do not allow to shrink below initial brk value */ if (brk_val < initial_target_brk) { - brk_val = initial_target_brk; + return target_brk; } new_brk = TARGET_PAGE_ALIGN(brk_val);
Linux 6.4.7 does nothing when a value smaller than the initial brk is specified. Fixes: 86f04735ac ("linux-user: Fix brk() to release pages") Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> --- linux-user/syscall.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)