From: Roel Kluin Date: Sat, 8 Aug 2009 00:17:32 +0000 (+0200) Subject: HID: fix overrun in quirks initialization X-Git-Tag: v2.6.32-rc1~687^2^2~1 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;h=44cb2db10d05fc263c9fa44347d350d4f7f5890c;hp=3c3301083e3bea4d14c597106c7b20b4b85fc03d;p=safe%2Fjmp%2Flinux-2.6 HID: fix overrun in quirks initialization Check whether index is within bounds before testing the element. declared in drivers/hid/usbhid/hid-core.c:62: static char *quirks_param[MAX_USBHID_BOOT_QUIRKS] = ... Signed-off-by: Roel Kluin Cc: Jiri Kosina Signed-off-by: Andrew Morton Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index d8f7423..0d9045a 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c @@ -201,7 +201,7 @@ int usbhid_quirks_init(char **quirks_param) u32 quirks; int n = 0, m; - for (; quirks_param[n] && n < MAX_USBHID_BOOT_QUIRKS; n++) { + for (; n < MAX_USBHID_BOOT_QUIRKS && quirks_param[n]; n++) { m = sscanf(quirks_param[n], "0x%hx:0x%hx:0x%x", &idVendor, &idProduct, &quirks);