Input: gtco - fix usb_dev leak
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Mon, 27 Jan 2014 20:25:47 +0000 (12:25 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 28 Jan 2014 06:34:49 +0000 (22:34 -0800)
There is usb_get_dev() in gtco_probe(), but there is no usb_put_dev()
anywhere in the driver.

As pointed out by Dmitry Torokhov:
The lifetime of gtco structure is already directly tied to lifetime of
usb_dev: when destroying usb_dev driver core will call remove() function
of currently bound driver (in our case gtco) which will destroy gtco
memory. Taking additional reference is not needed here.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/tablet/gtco.c

index caecffe8caff3e3742e08d9531b3f4eea3ae5ac7..858045694e9d73f8ade7fe9d2327ec6594cb12c6 100644 (file)
@@ -848,7 +848,7 @@ static int gtco_probe(struct usb_interface *usbinterface,
        gtco->inputdevice = input_dev;
 
        /* Save interface information */
-       gtco->usbdev = usb_get_dev(interface_to_usbdev(usbinterface));
+       gtco->usbdev = interface_to_usbdev(usbinterface);
        gtco->intf = usbinterface;
 
        /* Allocate some data for incoming reports */