c06989da39
vdso_enabled can be set to arbitrary integer values via the kernel command
line 'vdso32=' parameter or via 'sysctl abi.vsyscall32'.
load_vdso32() only maps VDSO if vdso_enabled == 1, but ARCH_DLINFO_IA32
merily checks for vdso_enabled != 0. As a consequence the AT_SYSINFO_EHDR
auxiliary vector for the VDSO_ENTRY is emitted with a NULL pointer which
causes a segfault when the application tries to use the VDSO.
Restrict the valid arguments on the command line and the sysctl to 0 and 1.
Fixes:
|
||
---|---|---|
.. | ||
syscalls | ||
vdso | ||
vsyscall | ||
Makefile | ||
calling.h | ||
common.c | ||
entry_32.S | ||
entry_64.S | ||
entry_64_compat.S | ||
syscall_32.c | ||
syscall_64.c | ||
thunk_32.S | ||
thunk_64.S |