From: Dan Carpenter Date: Wed, 10 Jan 2018 09:39:03 +0000 (+0300) Subject: HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() X-Git-Tag: v4.19~1710^2^3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ad81482cad67cbe1ec808490d1ddfc420c42008;p=platform%2Fkernel%2Flinux-rpi.git HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() We get the "new_profile_index" value from the mouse device when we're handling raw events. Smatch taints it as untrusted data and complains that we need a bounds check. This seems like a reasonable warning otherwise there is a small read beyond the end of the array. Fixes: 0e70f97f257e ("HID: roccat: Add support for Kova[+] mouse") Signed-off-by: Dan Carpenter Acked-by: Silvan Jegen Signed-off-by: Jiri Kosina --- diff --git a/drivers/hid/hid-roccat-kovaplus.c b/drivers/hid/hid-roccat-kovaplus.c index 43617fb..317c9c2 100644 --- a/drivers/hid/hid-roccat-kovaplus.c +++ b/drivers/hid/hid-roccat-kovaplus.c @@ -37,6 +37,8 @@ static uint kovaplus_convert_event_cpi(uint value) static void kovaplus_profile_activated(struct kovaplus_device *kovaplus, uint new_profile_index) { + if (new_profile_index >= ARRAY_SIZE(kovaplus->profile_settings)) + return; kovaplus->actual_profile = new_profile_index; kovaplus->actual_cpi = kovaplus->profile_settings[new_profile_index].cpi_startup_level; kovaplus->actual_x_sensitivity = kovaplus->profile_settings[new_profile_index].sensitivity_x;