On Mon, Mar 13, 2017 at 01:50:04PM +0300, Dan Carpenter wrote: > The > should be >= SWITCHTEC_IOCTL_MAX_EVENTS. Otherwise we probably > read one space beyond the end of the loop, hit a sanity check and return > -EINVAL. This bug doesn't look super serious. > > Fixes: 61c2e02154a9 ("switchtec: Add IOCTLs to the Switchtec driver") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Since these patches are on my "next" branch but haven't been merged anywhere else, I folded both patches into the initial commits and added a changelog note to credit Dan. > diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c > index 1f045c95dec6..82ae08956457 100644 > --- a/drivers/pci/switch/switchtec.c > +++ b/drivers/pci/switch/switchtec.c > @@ -1049,7 +1049,7 @@ static int ioctl_event_ctl(struct switchtec_dev *stdev, > if (copy_from_user(&ctl, uctl, sizeof(ctl))) > return -EFAULT; > > - if (ctl.event_id > SWITCHTEC_IOCTL_MAX_EVENTS) > + if (ctl.event_id >= SWITCHTEC_IOCTL_MAX_EVENTS) > return -EINVAL; > > if (ctl.flags & SWITCHTEC_IOCTL_EVENT_FLAG_UNUSED)