Commit 86f04735ac ("linux-user: Fix brk() to release pages")
introduced the
possibility for userspace applications to reduce memory footprint by
calling
brk() with a lower address and free up memory.
This change introduced some failures for applications with errors like
- accesing bytes above the brk heap address on the same page,
- freeing memory below the initial brk address,
and introduced a behaviour which isn't done by the kernel (e.g. zeroing
memory above brk).
This patch set fixes those issues and have been tested with existing
programs (e.g. upx).
Additionally it includes one patch to allow running static armhf
executables
(e.g. fstype) which was broken since qemu-8.0.
Helge
Helge Deller (6):
Revert "linux-user: Make sure initial brk(0) is page-aligned"
linux-user: Fix qemu brk() to not zero bytes on current page
linux-user: Prohibit brk() to to shrink below initial heap address
linux-user: Fix signed math overflow in brk() syscall
linux-user: Fix strace output for old_mmap
linux-user: Fix qemu-arm to run static armhf binaries
linux-user/elfload.c | 7 +++++++
linux-user/strace.c | 49
++++++++++++++++++++++++++++++++++++++++----
linux-user/syscall.c | 25 +++++++++++++---------
3 files changed, 67 insertions(+), 14 deletions(-)
--
2.41.0