xemu/linux-user
Peter Maydell 7f0f4208b3 linux-user/signal.c: Ensure AArch64 signal frame isn't too small
The AArch64 signal frame design was extended for SVE in commit
8c5931de0a, so that instead of having a fixed setup we
now add various records to the frame, with some of them possibly
overflowing into an extra space outside the original 4K reserved
block in the target_sigcontext.  However, we failed to ensure that we
always at least allocate the 4K reserved block.  This is ABI, and
some userspace programs rely on it.  In particular the dash shell
would segfault if the frame wasn't as big enough.

(Compare the kernel's sigframe_size() function in
arch/arm64/kernel/signal.c.)

Reported-by: Richard Henwood <richard.henwood@arm.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180409140714.26841-1-peter.maydell@linaro.org
Fixes: https://bugs.launchpad.net/bugs/1761535
Fixes: 8c5931de0a
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-04-10 13:02:25 +01: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
x86_64 linux-user: Move CPU type name selection to a function 2018-02-25 17:27:41 +01:00
xtensa target/xtensa: linux-user: fix sysv IPC structures 2018-04-01 14:05:23 -07:00
Makefile.objs linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
elfload.c linux-user: init_guest_space: Try to make ARM space+commpage continuous 2018-03-20 18:26:40 +01:00
errno_defs.h linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
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 target/xtensa: linux-user: rewind pc for restarted syscall 2018-03-31 14:06:35 -07:00
mmap.c linux-user: drop unused target_msync function 2018-03-13 11:30:22 -07:00
qemu.h linux-user: drop unused target_msync function 2018-03-13 11:30:22 -07: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 linux-user/signal.c: Ensure AArch64 signal frame isn't too small 2018-04-10 13:02:25 +01: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.c Fix file offset for preadv/pwritev linux-user syscalls. 2018-04-10 10:22:45 +01:00
syscall_defs.h linux-user: fix TARGET___O_TMPFILE for sparc 2018-04-03 11:50:24 +02:00
syscall_types.h linux-user: Add FICLONE and FICLONERANGE ioctls 2017-02-16 15:29:30 +01:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
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