2022-07-20 06:59:49

by Jaehee Park

[permalink] [raw]
Subject: [PATCH net-next] net: ipv6: avoid accepting values greater than 2 for accept_untracked_na

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.

Signed-off-by: Jaehee Park <[email protected]>
Suggested-by: Nicolas Dichtel <[email protected]>
Suggested-by: Roopa Prabhu <[email protected]>
---
net/ipv6/addrconf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 6ed807b6c647..d3e77ea24f05 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -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,
+ .proc_handler = proc_dointvec_minmax,
.extra1 = (void *)SYSCTL_ZERO,
- .extra2 = (void *)SYSCTL_ONE,
+ .extra2 = (void *)SYSCTL_TWO,
},
{
/* sentinel */
--
2.30.2


2022-07-20 09:16:23

by Nicolas Dichtel

[permalink] [raw]
Subject: Re: [PATCH net-next] net: ipv6: avoid accepting values greater than 2 for accept_untracked_na


Le 20/07/2022 à 08:52, Jaehee Park a écrit :
> 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.
>
> Signed-off-by: Jaehee Park <[email protected]>
> Suggested-by: Nicolas Dichtel <[email protected]>
> Suggested-by: Roopa Prabhu <[email protected]>
> ---
> net/ipv6/addrconf.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
> index 6ed807b6c647..d3e77ea24f05 100644
> --- a/net/ipv6/addrconf.c
> +++ b/net/ipv6/addrconf.c
> @@ -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,
> + .proc_handler = proc_dointvec_minmax,
> .extra1 = (void *)SYSCTL_ZERO,
> - .extra2 = (void *)SYSCTL_ONE,
> + .extra2 = (void *)SYSCTL_TWO,
Nit: the cast is useless:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sysctl.h#n40


Regards,
Nicolas

2022-07-20 18:40:58

by Jaehee Park

[permalink] [raw]
Subject: Re: [PATCH net-next] net: ipv6: avoid accepting values greater than 2 for accept_untracked_na

On Wed, Jul 20, 2022 at 4:26 AM Nicolas Dichtel
<[email protected]> wrote:
>
>
> Le 20/07/2022 à 08:52, Jaehee Park a écrit :
> > 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.
> >
> > Signed-off-by: Jaehee Park <[email protected]>
> > Suggested-by: Nicolas Dichtel <[email protected]>
> > Suggested-by: Roopa Prabhu <[email protected]>
> > ---
> > net/ipv6/addrconf.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
> > index 6ed807b6c647..d3e77ea24f05 100644
> > --- a/net/ipv6/addrconf.c
> > +++ b/net/ipv6/addrconf.c
> > @@ -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,
> > + .proc_handler = proc_dointvec_minmax,
> > .extra1 = (void *)SYSCTL_ZERO,
> > - .extra2 = (void *)SYSCTL_ONE,
> > + .extra2 = (void *)SYSCTL_TWO,
> Nit: the cast is useless:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sysctl.h#n40
>

O yes thank you for pointing that out! I just sent a v2 for your review.

>
> Regards,
> Nicolas

Thanks,
Jaehee