[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180309110510.GB7786@himanshu-Vostro-3559>
Date: Fri, 9 Mar 2018 16:35:10 +0530
From: Himanshu Jha <himanshujha199640@...il.com>
To: Kees Cook <keescook@...omium.org>
Cc: jic23@...nel.org, Hartmut Knaack <knaack.h@....de>,
Lars-Peter Clausen <lars@...afoo.de>,
Peter Meerwald-Stadler <pmeerw@...erw.net>,
linux-iio@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>,
"Gustavo A. R. Silva" <garsilva@...eddedor.com>
Subject: Re: [PATCH] iio: potentiometer: ds1803: Remove VLA usage
On Thu, Mar 08, 2018 at 11:39:15AM -0800, Kees Cook wrote:
> On Thu, Mar 8, 2018 at 10:45 AM, Himanshu Jha
> <himanshujha199640@...il.com> wrote:
> > In preparation to enabling -Wvla, remove VLA usage and replace it
> > with fixed a fixed length array and therefore, prevent potential
> > stack overflow attacks.
> >
> > Fixed as a part of the discussion to remove all VLAs from the kernel:
> > https://lkml.org/lkml/2018/3/7/621
> >
> > Cc: keescook@...omium.org
> > Signed-off-by: Himanshu Jha <himanshujha199640@...il.com>
> > ---
> > drivers/iio/potentiometer/ds1803.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/potentiometer/ds1803.c b/drivers/iio/potentiometer/ds1803.c
> > index 9b0ff4a..6bf12c9 100644
> > --- a/drivers/iio/potentiometer/ds1803.c
> > +++ b/drivers/iio/potentiometer/ds1803.c
> > @@ -64,7 +64,7 @@ static int ds1803_read_raw(struct iio_dev *indio_dev,
> > struct ds1803_data *data = iio_priv(indio_dev);
> > int pot = chan->channel;
> > int ret;
> > - u8 result[indio_dev->num_channels];
> > + u8 result[ARRAY_SIZE(ds1803_channels)];
>
> It seems like num_channels is always ARRAY_SIZE(ds1803_channels).
> Could the entire field be dropped?
If you're asking to remove num_channels then certainly it is not
possible
since it is a member of industrial I/O device struct and it is not just
a member of regular struct local to this file.
We certainly know that there are only two channels BTW and it can be
tranformed to simply:
u8 result[2];
But then I might have to add an additional comment explaining the magic
number 2.
--
Thanks
Himanshu Jha
Powered by blists - more mailing lists