qemu-e2k/linux-user
Peter Maydell 74e43b04b0 linux-user: Check lock_user result for ip_mreq_source sockopts
In do_setsockopt(), the code path for the options which take a struct
ip_mreq_source (IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE,
IP_ADD_SOURCE_MEMBERSHIP and IP_DROP_SOURCE_MEMBERSHIP) fails to
check the return value from lock_user().  Handle this in the usual
way by returning -TARGET_EFAULT.

(In practice this was probably harmless because we'd pass a NULL
pointer to setsockopt() and the kernel would then return EFAULT.)

Fixes: Coverity CID 1459987
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210809155424.30968-1-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2021-09-16 17:04:21 +02:00
..
aarch64 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
alpha linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
arm linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
cris linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
generic linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
hexagon linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
host
hppa linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
i386 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
m68k linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
microblaze linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
mips linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
mips64 linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
nios2 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
openrisc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ppc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
riscv linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
s390x linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
sh4 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
sparc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
x86_64 linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
xtensa linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
cpu_loop-common.h
elfload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 2021-07-12 21:54:46 +02:00
flat.h
flatload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ioctls.h
linux_loop.h
linuxload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
meson.build linux-user/sparc: Merge sparc64/ into sparc/ 2021-05-15 21:43:23 +02:00
mmap.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
qemu.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
safe-syscall.h linux-user: Split safe-syscall macro into its own header 2021-09-13 20:35:45 +02:00
safe-syscall.S linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
semihost.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
signal-common.h linux-user: Split signal-related prototypes into signal-common.h 2021-09-13 20:35:44 +02:00
signal.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
socket.h
strace.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
strace.h linux-user: Split strace prototypes into strace.h 2021-09-13 20:35:44 +02:00
strace.list linux-user: Add copy_file_range to strace.list 2021-05-18 07:09:58 +02:00
syscall_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
syscall_types.h
syscall.c linux-user: Check lock_user result for ip_mreq_source sockopts 2021-09-16 17:04:21 +02:00
target_flat.h
trace-events linux-user/trace-events: fix minor typo in format string 2021-06-17 16:09:11 +02:00
trace.h
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.h
user-internals.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
user-mmap.h linux-user: Split mmap prototypes into user-mmap.h 2021-09-13 20:35:45 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00