aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPing Cheng <pinglinux@gmail.com>2015-05-19 20:42:02 -0400
committerJiri Kosina <jkosina@suse.cz>2015-05-20 06:00:29 -0400
commit26ba61f871b4aa9958bcebffcbeb558094d75928 (patch)
treefbb6190cbfce6bda0e6e075b7bdb97d6088240fe
parent849eca7b9dae0364e2fbe8afdf0fb610d12c9c8f (diff)
HID: wacom: fix an Oops caused by wacom_wac_finger_count_touches
We assumed all touch interfaces report touch data. But, Bamboo and Intuos non-touch devices report express keys on touch interface. We need to check touch_max before counting touches. Reported-by: Tasos Sahanidis <tasos@tasossah.com> Signed-off-by: Ping Cheng <pingc@wacom.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/wacom_wac.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index fa54d3290659..adf959dcfa5d 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -1072,6 +1072,9 @@ static int wacom_wac_finger_count_touches(struct wacom_wac *wacom)
1072 int count = 0; 1072 int count = 0;
1073 int i; 1073 int i;
1074 1074
1075 if (!touch_max)
1076 return 0;
1077
1075 /* non-HID_GENERIC single touch input doesn't call this routine */ 1078 /* non-HID_GENERIC single touch input doesn't call this routine */
1076 if ((touch_max == 1) && (wacom->features.type == HID_GENERIC)) 1079 if ((touch_max == 1) && (wacom->features.type == HID_GENERIC))
1077 return wacom->hid_data.tipswitch && 1080 return wacom->hid_data.tipswitch &&