Commit 5c2b6078 authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by John W. Linville

carl9170: fix leaks at failure path in carl9170_usb_probe()

carl9170_usb_probe() does not handle request_firmware_nowait() failure
that leads to several leaks in this case.
The patch adds all required deallocations.

Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b88bb291
...@@ -1076,8 +1076,14 @@ static int carl9170_usb_probe(struct usb_interface *intf, ...@@ -1076,8 +1076,14 @@ static int carl9170_usb_probe(struct usb_interface *intf,
carl9170_set_state(ar, CARL9170_STOPPED); carl9170_set_state(ar, CARL9170_STOPPED);
return request_firmware_nowait(THIS_MODULE, 1, CARL9170FW_NAME, err = request_firmware_nowait(THIS_MODULE, 1, CARL9170FW_NAME,
&ar->udev->dev, GFP_KERNEL, ar, carl9170_usb_firmware_step2); &ar->udev->dev, GFP_KERNEL, ar, carl9170_usb_firmware_step2);
if (err) {
usb_put_dev(udev);
usb_put_dev(udev);
carl9170_free(ar);
}
return err;
} }
static void carl9170_usb_disconnect(struct usb_interface *intf) static void carl9170_usb_disconnect(struct usb_interface *intf)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment