usb: gadget: goku_udc: fix memory leak in goku_probe()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Fri, 26 Aug 2016 00:06:02 +0000 (03:06 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 29 Aug 2016 07:48:54 +0000 (10:48 +0300)
Memory allocated for goku_udc device is not deallocated at error
paths in goku_probe(), because gadget_release() destructor
is not registered yet.

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

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/udc/goku_udc.c

index 1400415..5107987 100644 (file)
@@ -1838,6 +1838,8 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 err:
        if (dev)
                goku_remove (pdev);
+       /* gadget_release is not registered yet, kfree explicitly */
+       kfree(dev);
        return retval;
 }