All of lore.kernel.org
 help / color / mirror / Atom feed
* Patch "HID: wacom: Always increment hdev refcount within wacom_get_hdev_data" has been added to the 4.13-stable tree
@ 2017-10-10 15:12 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2017-10-10 15:12 UTC (permalink / raw)
  To: killertofu, gregkh, jason.gerecke, jkosina, ping.cheng
  Cc: stable, stable-commits


This is a note to let you know that I've just added the patch titled

    HID: wacom: Always increment hdev refcount within wacom_get_hdev_data

to the 4.13-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     hid-wacom-always-increment-hdev-refcount-within-wacom_get_hdev_data.patch
and it can be found in the queue-4.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From 2a5e597c6bb1b873e473e5f57147e9e5d2755430 Mon Sep 17 00:00:00 2001
From: Jason Gerecke <killertofu@gmail.com>
Date: Mon, 18 Sep 2017 09:27:42 -0700
Subject: HID: wacom: Always increment hdev refcount within wacom_get_hdev_data

From: Jason Gerecke <killertofu@gmail.com>

commit 2a5e597c6bb1b873e473e5f57147e9e5d2755430 upstream.

The wacom_get_hdev_data function is used to find and return a reference to
the "other half" of a Wacom device (i.e., the touch device associated with
a pen, or vice-versa). To ensure these references are properly accounted
for, the function is supposed to automatically increment the refcount before
returning. This was not done, however, for devices which have pen & touch
on different interfaces of the same USB device. This can lead to a WARNING
("refcount_t: underflow; use-after-free") when removing the module or device
as we call kref_put() more times than kref_get(). Triggering an "actual" use-
after-free would be difficult since both devices will disappear nearly-
simultaneously. To silence this warning and prevent the potential error, we
need to increment the refcount for all cases within wacom_get_hdev_data.

Fixes: 41372d5d40 ("HID: wacom: Augment 'oVid' and 'oPid' with heuristics for HID_GENERIC")
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hid/wacom_sys.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -668,8 +668,10 @@ static struct wacom_hdev_data *wacom_get
 
 	/* Try to find an already-probed interface from the same device */
 	list_for_each_entry(data, &wacom_udev_list, list) {
-		if (compare_device_paths(hdev, data->dev, '/'))
+		if (compare_device_paths(hdev, data->dev, '/')) {
+			kref_get(&data->kref);
 			return data;
+		}
 	}
 
 	/* Fallback to finding devices that appear to be "siblings" */


Patches currently in stable-queue which might be from killertofu@gmail.com are

queue-4.13/hid-wacom-always-increment-hdev-refcount-within-wacom_get_hdev_data.patch
queue-4.13/hid-wacom-correct-coordinate-system-of-touchring-and-pen-twist.patch
queue-4.13/hid-wacom-properly-report-negative-values-from-intuos-pro-2-bluetooth.patch
queue-4.13/hid-wacom-bits-shifted-too-much-for-9th-and-10th-buttons.patch
queue-4.13/hid-wacom-generic-send-msc_serial-and-abs_misc-when-leaving-prox.patch
queue-4.13/hid-wacom-generic-clear-abs_misc-when-tool-leaves-proximity.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-10-10 15:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-10 15:12 Patch "HID: wacom: Always increment hdev refcount within wacom_get_hdev_data" has been added to the 4.13-stable tree gregkh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.