qemu/linux-user
Icenowy Zheng 16c81dd563 linux-user: always translate cmsg when recvmsg
It's possible that a message contains both normal payload and ancillary
data in the same message, and even if no ancillary data is available
this information should be passed to the target, otherwise the target
cmsghdr will be left uninitialized and the target is going to access
uninitialized memory if it expects cmsg.

Always call the function that translate cmsg when recvmsg, because that
function should be empty-cmsg-safe (it creates an empty cmsg in the
target).

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20221028081220.1604244-1-uwu@icenowy.me>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2022-11-02 17:29:17 +01:00
..
aarch64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
alpha linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
arm linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
cris linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
generic linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
hexagon linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
hppa linux-user/hppa: Detect glibc ABORT_INSTRUCTION and EXCP_BREAK handler 2022-11-02 17:14:02 +01:00
i386 linux-user: Add guest memory layout to exception dump 2022-10-25 09:20:40 +02:00
include linux-user/host/s390: Add vector instructions to host_signal_write() 2022-09-23 15:16:16 +02:00
loongarch64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
m68k linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
microblaze linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
mips linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
mips64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
nios2 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
openrisc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
ppc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
riscv linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
s390x linux-user/s390x: Save/restore fpc when handling a signal 2022-09-27 13:19:05 +02:00
sh4 target/sh4: Fix TB_FLAG_UNALIGN 2022-10-04 12:33:05 -07:00
sparc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
x86_64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
xtensa linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
cpu_loop-common.h linux-user: Add guest memory layout to exception dump 2022-10-25 09:20:40 +02:00
elfload.c linux-user: Set ELF_BASE_PLATFORM for MIPS 2022-09-27 13:19:05 +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: Fix inotify on aarch64 2022-01-27 16:58:33 +01: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 linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user/flatload.c: Fix setting of image_info::end_code 2022-07-28 19:17:24 +02:00
ioctls.h linux-user: remove conditionals for many fs.h ioctls 2022-10-21 17:46:19 +02:00
linux_loop.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linuxload.c linux-user: Clean up arg_start/arg_end confusion 2022-05-23 08:15:19 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c plugins: add [pre|post]fork helpers to linux-user 2022-10-06 11:53:41 +01:00
meson.build user: move common-user includes to a subdirectory of {bsd,linux}-user/ 2022-01-12 14:08:29 +01:00
mmap.c accel/tcg: Call tb_invalidate_phys_page for PAGE_RESET 2022-10-26 11:11:28 +10:00
qemu.h linux-user: Honor PT_GNU_STACK 2022-09-06 08:04:25 +01:00
semihost.c semihosting: Remove qemu_semihosting_console_outs 2022-06-28 04:41:20 +05:30
signal-common.h linux-user: Add missing signals in strace output 2022-09-27 09:29:33 +02:00
signal.c linux-user: Add missing signals in strace output 2022-09-27 09:29:33 +02:00
socket.h
strace.c linux-user: Implement faccessat2 2022-10-21 17:46:19 +02:00
strace.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
strace.list linux-user: Add strace output for timer_settime64() syscall 2022-11-02 17:21:06 +01:00
syscall_defs.h linux-user: Fix struct statfs ABI on loongarch64 2022-10-17 10:28:35 +08:00
syscall_types.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
syscall.c linux-user: always translate cmsg when recvmsg 2022-11-02 17:29:17 +01:00
target_flat.h
thunk.c linux-user: Move thunk.c from top-level 2021-12-20 10:12:29 -08:00
trace-events linux-user: Rename user_force_sig tracepoint to match function name 2022-01-18 12:41:42 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Remove pointless CPU{ARCH}State casts 2022-05-23 22:47:20 +02:00
uname.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
user-internals.h linux-user: Add partial support for MADV_DONTNEED 2022-06-24 10:00:00 +02:00
user-mmap.h linux-user: Add partial support for MADV_DONTNEED 2022-06-24 10:00:00 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00