linux-user: Do nothing if too small brk is specified
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") Reviewed-by: Helge Deller <deller@gmx.de> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Message-Id: <20230802071754.14876-6-akihiko.odaki@daynix.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
e69e032d1a
commit
cb9d5d1fda
@ -820,14 +820,14 @@ abi_long do_brk(abi_ulong brk_val)
|
|||||||
|
|
||||||
/* brk pointers are always untagged */
|
/* brk pointers are always untagged */
|
||||||
|
|
||||||
/* return old brk value if brk_val unchanged or zero */
|
/* return old brk value if brk_val unchanged */
|
||||||
if (!brk_val || brk_val == target_brk) {
|
if (brk_val == target_brk) {
|
||||||
return target_brk;
|
return target_brk;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* do not allow to shrink below initial brk value */
|
/* do not allow to shrink below initial brk value */
|
||||||
if (brk_val < initial_target_brk) {
|
if (brk_val < initial_target_brk) {
|
||||||
brk_val = initial_target_brk;
|
return target_brk;
|
||||||
}
|
}
|
||||||
|
|
||||||
new_brk = TARGET_PAGE_ALIGN(brk_val);
|
new_brk = TARGET_PAGE_ALIGN(brk_val);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user