[PATCH] Input: pxrc - fix leak of usb_device

From: Alexey Khoroshilov
Date: Fri Jul 13 2018 - 16:09:35 EST


pxrc_probe() calls usb_get_dev(), but there is no usb_put_dev()
anywhere in the driver.

The patch adds one to error handling code and to pxrc_disconnect().

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

Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
---
drivers/input/joystick/pxrc.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/input/joystick/pxrc.c b/drivers/input/joystick/pxrc.c
index 07a0dbd3ced2..0a31de63ac8e 100644
--- a/drivers/input/joystick/pxrc.c
+++ b/drivers/input/joystick/pxrc.c
@@ -221,6 +221,7 @@ static int pxrc_probe(struct usb_interface *intf,
usb_free_urb(pxrc->urb);

error:
+ usb_put_dev(pxrc->udev);
return retval;
}

@@ -229,6 +230,7 @@ static void pxrc_disconnect(struct usb_interface *intf)
struct pxrc *pxrc = usb_get_intfdata(intf);

usb_free_urb(pxrc->urb);
+ usb_put_dev(pxrc->udev);
usb_set_intfdata(intf, NULL);
}

--
2.7.4