Commit a231f5bd authored by Nicolas Bouchinet's avatar Nicolas Bouchinet Committed by Joel Granados
Browse files

sysctl: Fix underflow value setting risk in vm_table



Commit 3b3376f2 ("sysctl.c: fix underflow value setting risk in vm_table")
fixes underflow value setting risk in vm_table but misses vdso_enabled
sysctl.

vdso_enabled sysctl is initialized with .extra1 value as SYSCTL_ZERO to
avoid negative value writes but the proc_handler is proc_dointvec and
not proc_dointvec_minmax and thus do not uses .extra1 and .extra2.

The following command thus works :

`# echo -1 > /proc/sys/vm/vdso_enabled`

This patch properly sets the proc_handler to proc_dointvec_minmax.
In addition to .extra1, .extra2 is set to SYSCTL_ONE. The sysctl is
thus bounded between 0 and 1.

Fixes: 3b3376f2 ("sysctl.c: fix underflow value setting risk in vm_table")
Signed-off-by: default avatarNicolas Bouchinet <nicolas.bouchinet@ssi.gouv.fr>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarKees Cook <kees@kernel.org>
Signed-off-by: default avatarJoel Granados <joel.granados@kernel.org>
parent 049439e2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -37,8 +37,9 @@ static const struct ctl_table vdso_table[] = {
		.data		= &vdso_enabled,
		.maxlen		= sizeof(vdso_enabled),
		.mode		= 0644,
		.proc_handler	= proc_dointvec,
		.proc_handler	= proc_dointvec_minmax,
		.extra1		= SYSCTL_ZERO,
		.extra2		= SYSCTL_ONE,
	},
};