In do_brk(), we were inadvertently truncating the size of a requested brk() from the guest by putting it into an 'int' variable. This meant that we would incorrectly report success back to the guest rather than a failed allocation, typically resulting in the guest then segfaulting. Use abi_ulong instead. This fixes a crash in the '31370.cc' test in the gcc libstdc++ test suite (the test case starts by trying to allocate a very large size and reduces the size until the allocation succeeds). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org> |
||
|---|---|---|
| .. | ||
| aarch64 | ||
| alpha | ||
| arm | ||
| cris | ||
| host | ||
| i386 | ||
| m68k | ||
| microblaze | ||
| mips | ||
| mips64 | ||
| openrisc | ||
| ppc | ||
| s390x | ||
| sh4 | ||
| sparc | ||
| sparc64 | ||
| tilegx | ||
| unicore32 | ||
| x86_64 | ||
| Makefile.objs | ||
| elfload.c | ||
| errno_defs.h | ||
| flat.h | ||
| flatload.c | ||
| ioctls.h | ||
| linux_loop.h | ||
| linuxload.c | ||
| m68k-sim.c | ||
| main.c | ||
| mmap.c | ||
| qemu.h | ||
| safe-syscall.S | ||
| signal.c | ||
| socket.h | ||
| strace.c | ||
| strace.list | ||
| syscall.c | ||
| syscall_defs.h | ||
| syscall_types.h | ||
| target_flat.h | ||
| trace-events | ||
| uaccess.c | ||
| uname.c | ||
| uname.h | ||
| vm86.c | ||