Commit dd1dda6b authored by Jiajia Liu's avatar Jiajia Liu Committed by Luiz Augusto von Dentz
Browse files

Bluetooth: btmtk: fix urb->setup_packet leak in error paths



The setup_packet of control urb is not freed if usb_submit_urb fails or
the submitted urb is killed. Add free in these two paths.

Fixes: a1c49c43 ("Bluetooth: btusb: Add protocol support for MediaTek MT7668U USB devices")
Signed-off-by: default avatarJiajia Liu <liujiajia@kylinos.cn>
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent 84c24fb1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -537,6 +537,7 @@ static void btmtk_usb_wmt_recv(struct urb *urb)
		return;
	} else if (urb->status == -ENOENT) {
		/* Avoid suspend failed when usb_kill_urb */
		kfree(urb->setup_packet);
		return;
	}

@@ -610,6 +611,7 @@ static int btmtk_usb_submit_wmt_recv_urb(struct hci_dev *hdev)
		if (err != -EPERM && err != -ENODEV)
			bt_dev_err(hdev, "urb %p submission failed (%d)",
				   urb, -err);
		kfree(dr);
		usb_unanchor_urb(urb);
	}