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:
parent
ead00ddca0
commit
d3a874e899
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue