Bluetooth: btusb: fix memory leak on fw
authorColin Ian King <colin.king@canonical.com>
Fri, 29 Nov 2019 17:36:35 +0000 (17:36 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Feb 2020 12:35:09 +0000 (04:35 -0800)
commit 3168c19d7eb17a0108a3b60ad8e8c1b18ea05c63 upstream.

Currently the error return path when the call to btusb_mtk_hci_wmt_sync
fails does not free fw.  Fix this by returning via the error_release_fw
label that performs the free'ing.

Addresses-Coverity: ("Resource leak")
Fixes: a1c49c434e15 ("Bluetooth: btusb: Add protocol support for MediaTek MT7668U USB devices")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bluetooth/btusb.c

index 4e7ef35..26f71df 100644 (file)
@@ -2850,7 +2850,7 @@ static int btusb_mtk_setup_firmware(struct hci_dev *hdev, const char *fwname)
        err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
        if (err < 0) {
                bt_dev_err(hdev, "Failed to send wmt rst (%d)", err);
-               return err;
+               goto err_release_fw;
        }
 
        /* Wait a few moments for firmware activation done */