qemu-e2k/linux-user
Frédéric Fortier 13e340c886 linux-user: NETLINK_LIST_MEMBERSHIPS: Allow bad ptr if its length is 0
getsockopt(fd, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, *optval, *optlen)
syscall allows optval to be NULL/invalid if optlen points to a size of
zero. This allows userspace to query the length of the array they should
use to get the full membership list before allocating memory for said
list, then re-calling getsockopt with proper optval/optlen arguments.

Notable users of this pattern include systemd-networkd, which in the
(albeit old) version 237 tested, cannot start without this fix.

Signed-off-by: Frédéric Fortier <frf@ghgsat.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210328180135.88449-1-frf@ghgsat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2021-03-29 21:56:18 +02:00
..
aarch64 semihosting: Move include/hw/semihosting/ -> include/semihosting/ 2021-03-10 15:34:12 +00:00
alpha linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
arm semihosting: Move include/hw/semihosting/ -> include/semihosting/ 2021-03-10 15:34:12 +00:00
cris linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
generic linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
hexagon Hexagon (linux-user/hexagon) Linux user emulation 2021-02-18 07:48:22 -08:00
host
hppa linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged 2021-02-16 11:04:53 +00:00
i386 linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged 2021-02-16 11:04:53 +00:00
m68k
microblaze linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
mips linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
mips64 linux-user/mips: Support the n32 ABI for the R5900 2021-02-15 12:10:03 +01:00
nios2 linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
openrisc
ppc exec: Use cpu_untagged_addr in g2h; split out g2h_untagged 2021-02-16 11:04:53 +00:00
riscv linux-user/riscv: initialise the TaskState heap/stack info 2021-03-24 14:25:16 +00:00
s390x linux-user/s390x: Use the guest pointer for the sigreturn stub 2021-03-25 20:55:07 +01:00
sh4 accel/tcg: Precompute curr_cflags into cpu->tcg_cflags 2021-03-06 11:53:57 -08:00
sparc linux-user: target: signal: Support TARGET_SS_AUTODISARM 2021-02-13 22:50:50 +01:00
sparc64 linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
x86_64 linux user: Fix Lesser GPL version number 2020-11-15 16:41:26 +01:00
xtensa
cpu_loop-common.h
elfload.c linux-user/elfload: fix address calculation in fallback scenario 2021-03-13 10:45:11 +01:00
errno_defs.h
exit.c gdbstub: drop CPUEnv from gdb_exit() 2021-01-18 10:05:06 +00:00
fd-trans.c linux-user,netlink: add IFLA_BRPORT_MRP_RING_OPEN, IFLA_BRPORT_MRP_IN_OPEN 2020-11-17 15:22:52 +01:00
fd-trans.h
flat.h
flatload.c exec: Use cpu_untagged_addr in g2h; split out g2h_untagged 2021-02-16 11:04:53 +00:00
ioctls.h linux-user: Conditionalize TUNSETVNETLE 2021-01-07 05:09:06 -10:00
linux_loop.h
linuxload.c
main.c linux-user: manage binfmt-misc preserve-arg[0] flag 2021-03-13 10:45:11 +01:00
meson.build semihosting: Move ARM semihosting code to shared directories 2021-01-18 10:05:06 +00:00
mmap.c linux-user/aarch64: Implement PROT_MTE 2021-02-16 13:08:46 +00:00
qemu.h Hexagon (linux-user/hexagon) Linux user emulation 2021-02-18 07:48:22 -08:00
safe-syscall.S
semihost.c semihosting: Move include/hw/semihosting/ -> include/semihosting/ 2021-03-10 15:34:12 +00:00
signal-common.h
signal.c linux-user/signal: Decode waitid si_code 2021-02-13 22:50:49 +01:00
socket.h
strace.c linux-user: Add IPv6 options to do_print_sockopt() 2021-01-21 13:27:08 +01:00
strace.list
syscall_defs.h Remove deprecated target tilegx 2021-03-09 11:26:32 +01:00
syscall_types.h
syscall.c linux-user: NETLINK_LIST_MEMBERSHIPS: Allow bad ptr if its length is 0 2021-03-29 21:56:18 +02:00
target_flat.h
trace-events
trace.h
uaccess.c linux-user: Handle tags in lock_user/unlock_user 2021-02-16 13:06:11 +00:00
uname.c
uname.h
vm86.c