Messages in this thread | | | Date | Thu, 23 Jun 2022 07:53:12 +0200 | From | Johan Hovold <> | Subject | Re: [PATCH 1/2] Input: usbtouchscreen - suppress empty array warnings |
| |
On Wed, Jun 22, 2022 at 04:22:08PM -0700, Dmitry Torokhov wrote: > Hi Johan, > > On Mon, Jun 20, 2022 at 10:46:27AM +0200, Johan Hovold wrote: > > When compile-testing the USB touchscreen driver without enabling any of > > the device type options the usbtouch_dev_info array ends up being empty, > > something which triggers compiler warning with -Warray-bounds > > (gcc-11.3.0). > > > > drivers/input/touchscreen/usbtouchscreen.c: In function 'usbtouch_probe': > > drivers/input/touchscreen/usbtouchscreen.c:1668:16:warning: array subscript <unknown> is outside array bounds of 'struct usbtouch_device_info[0]' [-Warray-bounds] > > 1668 | type = &usbtouch_dev_info[id->driver_info]; > > > > Suppress the warnings by making sure that the array is always non-empty. > > Does it still warn if you add a check for type, something like > > if (type >= ARRAY_SIZE(usbtouch_device_info)) > return -ENODEV; > > ?
It seems
if (id->driver_info >= ARRAY_SIZE(usbtouch_dev_info)) return -ENODEV;
indeed does the trick. I'll send a v2.
Johan
| |