net: ipv6: avoid accepting values greater than 2 for accept_untracked_na
authorJaehee Park <jhpark1013@gmail.com>
Wed, 20 Jul 2022 18:36:32 +0000 (14:36 -0400)
committerJakub Kicinski <kuba@kernel.org>
Fri, 22 Jul 2022 02:11:10 +0000 (19:11 -0700)
The accept_untracked_na sysctl changed from a boolean to an integer
when a new knob '2' was added. This patch provides a safeguard to avoid
accepting values that are not defined in the sysctl. When setting a
value greater than 2, the user will get an 'invalid argument' warning.

Fixes: aaa5f515b16b ("net: ipv6: new accept_untracked_na option to accept na only if in-network")
Signed-off-by: Jaehee Park <jhpark1013@gmail.com>
Suggested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Suggested-by: Roopa Prabhu <roopa@nvidia.com>
Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Link: https://lore.kernel.org/r/20220720183632.376138-1-jhpark1013@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/addrconf.c

index 6ed807b..b624e3d 100644 (file)
@@ -7042,9 +7042,9 @@ static const struct ctl_table addrconf_sysctl[] = {
                .data           = &ipv6_devconf.accept_untracked_na,
                .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = proc_dointvec,
-               .extra1         = (void *)SYSCTL_ZERO,
-               .extra2         = (void *)SYSCTL_ONE,
+               .proc_handler   = proc_dointvec_minmax,
+               .extra1         = SYSCTL_ZERO,
+               .extra2         = SYSCTL_TWO,
        },
        {
                /* sentinel */