staging: gdm72xx: fix leaks at failure path in gdm_usb_probe()

Error handling code in gdm_usb_probe() misses to deallocate
tx_ and rx_structs and to do usb_put_dev().

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

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Alexey Khoroshilov 2014-02-06 01:47:13 +01:00 committed by Greg Kroah-Hartman
parent ead00ddca0
commit d3a874e899
1 changed files with 3 additions and 0 deletions

View File

@ -635,11 +635,14 @@ static int gdm_usb_probe(struct usb_interface *intf,
#endif /* CONFIG_WIMAX_GDM72XX_USB_PM */ #endif /* CONFIG_WIMAX_GDM72XX_USB_PM */
ret = register_wimax_device(phy_dev, &intf->dev); ret = register_wimax_device(phy_dev, &intf->dev);
if (ret)
release_usb(udev);
out: out:
if (ret) { if (ret) {
kfree(phy_dev); kfree(phy_dev);
kfree(udev); kfree(udev);
usb_put_dev(usbdev);
} else { } else {
usb_set_intfdata(intf, phy_dev); usb_set_intfdata(intf, phy_dev);
} }