Input: xpad - fix a memory leak
authorAxel Lin <axel.lin@gmail.com>
Fri, 12 Nov 2010 05:43:17 +0000 (21:43 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 12 Nov 2010 06:02:18 +0000 (22:02 -0800)
In xpad_led_disconnect(), what we really want is to kfree(xpad_led).
In xpad_disconnect(), add a missing kfree(xpad->bdata) to fix the memory leak.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/joystick/xpad.c

index 39c0265ca156d7c5633cdee9b1375a01ff1ea0b5..e8b2ece3e01e496a5b88b5110e5388182cfe97d7 100644 (file)
@@ -732,7 +732,7 @@ static void xpad_led_disconnect(struct usb_xpad *xpad)
 
        if (xpad_led) {
                led_classdev_unregister(&xpad_led->led_cdev);
-               kfree(xpad_led->name);
+               kfree(xpad_led);
        }
 }
 #else
@@ -921,7 +921,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
        usb_set_intfdata(intf, xpad);
 
        /*
-        * Submit the int URB immediatly rather than waiting for open
+        * Submit the int URB immediately rather than waiting for open
         * because we get status messages from the device whether
         * or not any controllers are attached.  In fact, it's
         * exactly the message that a controller has arrived that
@@ -1000,6 +1000,7 @@ static void xpad_disconnect(struct usb_interface *intf)
                usb_free_urb(xpad->irq_in);
                usb_free_coherent(xpad->udev, XPAD_PKT_LEN,
                                xpad->idata, xpad->idata_dma);
+               kfree(xpad->bdata);
                kfree(xpad);
        }
 }