LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [PATCH v2 4/4] ax.25: Remove the now superfluous sentinel elements f

To: Kuniyuki Iwashima <kuniyu@xxxxxxxxxx>
Subject: Re: [PATCH v2 4/4] ax.25: Remove the now superfluous sentinel elements from ctl_table array
Cc: <devnull+j.granados.samsung.com@xxxxxxxxxx>, <Dai.Ngo@xxxxxxxxxx>, <alex.aring@xxxxxxxxx>, <alibuda@xxxxxxxxxxxxxxxxx>, <allison.henderson@xxxxxxxxxx>, <anna@xxxxxxxxxx>, <bridge@xxxxxxxxxxxxxxx>, <chuck.lever@xxxxxxxxxx>, <coreteam@xxxxxxxxxxxxx>, <courmisch@xxxxxxxxx>, <davem@xxxxxxxxxxxxx>, <dccp@xxxxxxxxxxxxxxx>, <dhowells@xxxxxxxxxx>, <dsahern@xxxxxxxxxx>, <edumazet@xxxxxxxxxx>, <fw@xxxxxxxxx>, <geliang@xxxxxxxxxx>, <guwen@xxxxxxxxxxxxxxxxx>, <herbert@xxxxxxxxxxxxxxxxxxx>, <horms@xxxxxxxxxxxx>, <ja@xxxxxx>, <jaka@xxxxxxxxxxxxx>, <jlayton@xxxxxxxxxx>, <jmaloy@xxxxxxxxxx>, <jreuter@xxxxxxxx>, <kadlec@xxxxxxxxxxxxx>, <keescook@xxxxxxxxxxxx>, <kolga@xxxxxxxxxx>, <kuba@xxxxxxxxxx>, <linux-afs@xxxxxxxxxxxxxxxxxxx>, <linux-hams@xxxxxxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>, <linux-nfs@xxxxxxxxxxxxxxx>, <linux-rdma@xxxxxxxxxxxxxxx>, <linux-s390@xxxxxxxxxxxxxxx>, <linux-sctp@xxxxxxxxxxxxxxx>, <linux-wpan@xxxxxxxxxxxxxxx>, <linux-x25@xxxxxxxxxxxxxxx>, <lucien.xin@xxxxxxxxx>, <lvs-devel@xxxxxxxxxxxxxxx>, <marc.dionne@xxxxxxxxxxxx>, <marcelo.leitner@xxxxxxxxx>, <martineau@xxxxxxxxxx>, <matttbe@xxxxxxxxxx>, <mcgrof@xxxxxxxxxx>, <miquel.raynal@xxxxxxxxxxx>, <mptcp@xxxxxxxxxxxxxxx>, <ms@xxxxxxxxxx>, <neilb@xxxxxxx>, <netdev@xxxxxxxxxxxxxxx>, <netfilter-devel@xxxxxxxxxxxxxxx>, <pabeni@xxxxxxxxxx>, <pablo@xxxxxxxxxxxxx>, <ralf@xxxxxxxxxxxxxx>, <razor@xxxxxxxxxxxxx>, <rds-devel@xxxxxxxxxxxxxx>, <roopa@xxxxxxxxxx>, <stefan@xxxxxxxxxxxxxxxxxx>, <steffen.klassert@xxxxxxxxxxx>, <tipc-discussion@xxxxxxxxxxxxxxxxxxxxx>, <tom@xxxxxxxxxx>, <tonylu@xxxxxxxxxxxxxxxxx>, <trond.myklebust@xxxxxxxxxxxxxxx>, <wenjia@xxxxxxxxxxxxx>, <ying.xue@xxxxxxxxxxxxx>
From: Joel Granados <j.granados@xxxxxxxxxxx>
Date: Wed, 3 Apr 2024 11:16:25 +0200
On Thu, Mar 28, 2024 at 12:49:34PM -0700, Kuniyuki Iwashima wrote:
> From: Joel Granados via B4 Relay <devnull+j.granados.samsung.com@xxxxxxxxxx>
> Date: Thu, 28 Mar 2024 16:40:05 +0100
> > This commit comes at the tail end of a greater effort to remove the
> > empty elements at the end of the ctl_table arrays (sentinels) which will
> > reduce the overall build time size of the kernel and run time memory
> > bloat by ~64 bytes per sentinel (further information Link :
> > https://lore.kernel.org/all/ZO5Yx5JFogGi%2FcBo@xxxxxxxxxxxxxxxxxxxxxx/)
> > 
> > When we remove the sentinel from ax25_param_table a buffer overflow
> > shows its ugly head. The sentinel's data element used to be changed when
> > CONFIG_AX25_DAMA_SLAVE was not defined.
> 
> I think it's better to define the relation explicitly between the
> enum and sysctl table by BUILD_BUG_ON() in ax25_register_dev_sysctl()
> 
>   BUILD_BUG_ON(AX25_MAX_VALUES != ARRAY_SIZE(ax25_param_table));
> 
> and guard AX25_VALUES_DS_TIMEOUT with #ifdef CONFIG_AX25_DAMA_SLAVE
> as done for other enum.
This is a great idea. I'll also try to look and see where else I can add
the explicit relation check.

Thx for the review

> 
> 
> > This did not have any adverse
> > effects as we still stopped on the sentinel because of its null
> > procname. But now that we do not have the sentinel element, we are
> > careful to check ax25_param_table's size.
> > 
> > Signed-off-by: Joel Granados <j.granados@xxxxxxxxxxx>
> > ---
> >  net/ax25/sysctl_net_ax25.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> > 
> > diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
> > index db66e11e7fe8..e55be8817a1e 100644
> > --- a/net/ax25/sysctl_net_ax25.c
> > +++ b/net/ax25/sysctl_net_ax25.c
> > @@ -141,8 +141,6 @@ static const struct ctl_table ax25_param_table[] = {
> >             .extra2         = &max_ds_timeout
> >     },
> >  #endif
> > -
> > -   { }     /* that's all, folks! */
> >  };
> >  
> >  int ax25_register_dev_sysctl(ax25_dev *ax25_dev)
> > @@ -155,7 +153,7 @@ int ax25_register_dev_sysctl(ax25_dev *ax25_dev)
> >     if (!table)
> >             return -ENOMEM;
> >  
> > -   for (k = 0; k < AX25_MAX_VALUES; k++)
> > +   for (k = 0; k < AX25_MAX_VALUES && k < ARRAY_SIZE(ax25_param_table); 
> > k++)
> >             table[k].data = &ax25_dev->values[k];
> >  
> >     snprintf(path, sizeof(path), "net/ax25/%s", ax25_dev->dev->name);
> > 
> > -- 
> > 2.43.0

-- 

Joel Granados

Attachment: signature.asc
Description: PGP signature

<Prev in Thread] Current Thread [Next in Thread>