qemu-irix/linux-user
Peter Maydell f99329cd82 linux-user: Don't overrun guest buffer in sched_getaffinity
If the guest's "long" type is smaller than the host's, then
our sched_getaffinity wrapper needs to round the buffer size
up to a multiple of the host sizeof(long). This means that when
we copy the data back from the host buffer to the guest's
buffer there might be more than we can fit. Rather than
overflowing the guest's buffer, handle this case by returning
EINVAL or ignoring the unused extra space, as appropriate.

Note that only guests using the syscall interface directly might
run into this bug -- the glibc wrappers around it will always
use a buffer whose size is a multiple of 8 regardless of guest
architecture.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
(cherry picked from commit be3bd286bc)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2014-08-05 13:30:29 -05:00
..
aarch64 linux-user: AArch64: define TARGET_CLONE_BACKWARDS 2014-01-08 19:07:20 +00:00
alpha linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
arm linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
cris linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
i386 linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
m68k cpu: Move opaque field from CPU_COMMON to CPUState 2014-03-13 19:20:47 +01:00
microblaze linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
mips linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
mips64 linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
openrisc linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
ppc linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
s390x linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
sh4 linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
sparc linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
sparc64 linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
unicore32 linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
x86_64 linux-user: set minimum kernel version to 2.6.32 2014-03-10 13:55:00 +02:00
Makefile.objs build: move *-user/ objects to nested Makefile.objs 2012-06-07 07:17:33 +02:00
cpu-uname.c linux-user: Don't treat AArch64 cpu names specially 2013-09-10 19:11:28 +01:00
cpu-uname.h
elfload.c linux-user/elfload.c: Fix A64 code which was incorrectly acting like A32 2014-07-20 22:17:33 -05:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
flat.h
flatload.c linux-user: Remove regs parameter of load_elf_binary and load_flt_binary 2014-01-10 08:51:37 +02:00
ioctls.h linux-user: Implement BLKPG ioctl 2014-02-19 12:29:23 +02:00
linux_loop.h
linuxload.c cpu: Move opaque field from CPU_COMMON to CPUState 2014-03-13 19:20:47 +01:00
m68k-sim.c exec: Change cpu_abort() argument to CPUState 2014-03-13 19:52:28 +01:00
main.c exec: Change cpu_abort() argument to CPUState 2014-03-13 19:52:28 +01:00
mmap.c configure: Make NPTL non-optional 2013-07-22 21:54:52 +03:00
qemu.h linux-user: Don't allow guest to block SIGSEGV 2014-03-17 11:44:32 +02:00
signal.c linux-user: remove duplicate statement 2014-03-27 19:22:49 +04:00
socket.h linux-user: improve target_to_host_sock_type conversion 2013-07-05 15:45:40 +03:00
strace.c linux-user: Don't omit comma for strace of rt_sigaction() 2013-04-05 14:40:54 +02:00
strace.list [v2] linux-user: implement m68k atomic syscalls 2013-09-24 10:47:07 +03:00
syscall.c linux-user: Don't overrun guest buffer in sched_getaffinity 2014-08-05 13:30:29 -05:00
syscall_defs.h linux-user: Implement capget, capset 2014-03-17 15:26:58 +02:00
syscall_types.h linux-user: Implement BLKPG ioctl 2014-02-19 12:29:23 +02:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
uaccess.c
vm86.c cpu: Move opaque field from CPU_COMMON to CPUState 2014-03-13 19:20:47 +01:00