mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
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 | ||
| calling.h | ||
| common.c | ||
| entry_32.S | ||
| entry_64_compat.S | ||
| entry_64.S | ||
| Makefile | ||
| syscall_32.c | ||
| syscall_64.c | ||
| thunk_32.S | ||
| thunk_64.S | ||