qemu-e2k/linux-user
Peter Maydell be3bd286bc 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>
2014-06-17 09:21:41 +03:00
..
aarch64
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 target-ppc: Support little-endian PPC64 in user mode. 2014-06-16 13:24:40 +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
elfload.c linux-user: Tell guest about big host page sizes 2014-06-16 13:24:45 +02:00
errno_defs.h
flat.h
flatload.c
ioctls.h
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 target-ppc: Store Quadword Conditional Drops Size Bit 2014-06-16 13:24:40 +02:00
Makefile.objs linux-user: rename cpu-uname -> uname 2014-05-02 21:59:36 +03:00
mmap.c
qemu.h linux-user: fix gcc-4.9 compiler error on __{get,put]}_user 2014-06-17 08:52:08 +03:00
signal.c signal/ppc/do_setcontext remove __get_user return check 2014-06-17 08:52:08 +03:00
socket.h
strace.c
strace.list
syscall_defs.h linux-user: avoid using glibc internals in _syscall5 and in definition of target_sigevent struct 2014-05-02 21:59:28 +03:00
syscall_types.h
syscall.c linux-user: Don't overrun guest buffer in sched_getaffinity 2014-06-17 09:21:41 +03:00
target_flat.h
uaccess.c
uname.c linux-user/uname: Return correct uname string for x86_64 2014-06-17 09:21:40 +03:00
uname.h linux-user: move uname functions to uname.c 2014-05-02 21:59:36 +03:00
vm86.c cpu: Move opaque field from CPU_COMMON to CPUState 2014-03-13 19:20:47 +01:00