> -----Original Message-----
> From: Randy Dunlap <rdun...@infradead.org>
> Sent: Sunday, July 12, 2020 9:54 AM
> To: Eads, Gage <gage.e...@intel.com>; linux-kernel@vger.kernel.org;
> a...@arndb.de; gre...@linuxfoundation.org
> Cc: Karlsson, Magnus <magnus.karls...@intel.com>; Topel, Bjorn
> <bjorn.to...@intel.com>
> Subject: Re: [PATCH 04/20] dlb2: add device ioctl layer and first 4 ioctls
> 
> On 7/12/20 6:43 AM, Gage Eads wrote:
> > +int dlb2_ioctl_dispatcher(struct dlb2_dev *dev,
> > +                     unsigned int cmd,
> > +                     unsigned long arg)
> > +{
> > +   u16 sz = _IOC_SIZE(cmd);
> > +
> > +   if (_IOC_NR(cmd) >= NUM_DLB2_CMD) {
> 
> Does this bounds check need to use array_index_nospec() from
> <linux/nospec.h> ?
> 
> > +           dev_err(dev->dlb2_device,
> > +                   "[%s()] Unexpected DLB command %d\n",
> > +                   __func__, _IOC_NR(cmd));
> > +           return -1;
> > +   }
> > +
> > +   return dlb2_ioctl_callback_fns[_IOC_NR(cmd)](dev, arg, sz); }
> 
> I don't know if it needs to or not. I just want to make sure that you or
> someone has thought about it.

Thanks for catching this -- it does. Per Arnd's suggestion, I'm going to 
convert this to a switch statement and avoid the index altogether.

Thanks,
Gage

> 
> --
> ~Randy

Reply via email to