qemu/linux-user
Max Filippov e530acd7de linux-user: fix mmap/munmap/mprotect/mremap/shmat
In linux-user QEMU that runs for a target with TARGET_ABI_BITS bigger
than L1_MAP_ADDR_SPACE_BITS an assertion in page_set_flags fires when
mmap, munmap, mprotect, mremap or shmat is called for an address outside
the guest address space. mmap and mprotect should return ENOMEM in such
case.

Change definition of GUEST_ADDR_MAX to always be the last valid guest
address. Account for this change in open_self_maps.
Add macro guest_addr_valid that verifies if the guest address is valid.
Add function guest_range_valid that verifies if address range is within
guest address space and does not wrap around. Use that macro in
mmap/munmap/mprotect/mremap/shmat for error checking.

Cc: qemu-stable@nongnu.org
Cc: Riku Voipio <riku.voipio@iki.fi>
Cc: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2018-03-13 11:30:22 -07:00
..
aarch64 linux-user: Implement aarch64 PR_SVE_SET/GET_VL 2018-03-09 17:09:43 +00:00
alpha linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
arm linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
cris linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
host linux-user: Fix register used for 6th and 7th syscall argument on aarch64 2018-02-18 18:52:32 +01:00
hppa linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
i386 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
m68k linux-user, m68k: select CPU according to ELF header values 2018-02-25 17:29:21 +01:00
microblaze linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
mips linux-user: MIPS set cpu to r6 CPU if binary is R6 2018-02-25 17:29:45 +01:00
mips64 linux-user: MIPS set cpu to r6 CPU if binary is R6 2018-02-25 17:29:45 +01:00
nios2 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
openrisc linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
ppc linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
riscv RISC-V Linux User Emulation 2018-03-07 08:30:28 +13:00
s390x linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
sh4 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
sparc linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
sparc64 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
tilegx linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
unicore32 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
x86_64 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
elfload.c RISC-V Linux User Emulation 2018-03-07 08:30:28 +13:00
errno_defs.h linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
flat.h
flatload.c linux-user: Fix error handling in flatload.c target_pread() 2016-09-21 14:27:19 +03:00
ioctls.h linux-user: Implement ioctl cmd TIOCGPTPEER 2018-02-18 18:52:32 +01:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
m68k-sim.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
main.c RISC-V Linux User Emulation 2018-03-07 08:30:28 +13:00
Makefile.objs linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
mmap.c linux-user: fix mmap/munmap/mprotect/mremap/shmat 2018-03-13 11:30:22 -07:00
qemu.h linux-user: introduce functions to detect CPU type 2018-02-25 17:28:49 +01:00
safe-syscall.S linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
signal.c aarch64-linux-user: Add support for SVE signal frame records 2018-03-09 17:09:44 +00:00
socket.h linux-user: Add HPPA socket.h definitions 2017-01-23 09:52:39 -08:00
strace.c linux-user: fix O_TMPFILE handling 2017-10-16 16:00:56 +03:00
strace.list linux-user: add rt_tgsigqueueinfo() strace 2017-05-29 14:56:08 +03:00
syscall_defs.h RISC-V Linux User Emulation 2018-03-07 08:30:28 +13:00
syscall_types.h linux-user: Add FICLONE and FICLONERANGE ioctls 2017-02-16 15:29:30 +01:00
syscall.c linux-user: fix mmap/munmap/mprotect/mremap/shmat 2018-03-13 11:30:22 -07:00
target_flat.h
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
uaccess.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
uname.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
vm86.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00