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:
|
||
|---|---|---|
| .. | ||
| vdso32 | ||
| .gitignore | ||
| checkundef.sh | ||
| Makefile | ||
| vclock_gettime.c | ||
| vdso2c.c | ||
| vdso2c.h | ||
| vdso32-setup.c | ||
| vdso-layout.lds.S | ||
| vdso-note.S | ||
| vdso.lds.S | ||
| vdsox32.lds.S | ||
| vgetcpu.c | ||
| vma.c | ||