Skip to content

Commit 18bdb38

Browse files
moore-brosVudentz
authored andcommitted
Bluetooth: btusb: mediatek: Fix double free of skb in coredump
hci_devcd_append() would free the skb on error so the caller don't have to free it again otherwise it would cause the double free of skb. Fixes: 0b70151 ("Bluetooth: btusb: mediatek: add MediaTek devcoredump support") Reported-by : Dan Carpenter <[email protected]> Signed-off-by: Sean Wang <[email protected]> Signed-off-by: Luiz Augusto von Dentz <[email protected]>
1 parent 6eb5fcc commit 18bdb38

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

drivers/bluetooth/btmtk.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,10 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb)
380380
switch (data->cd_info.state) {
381381
case HCI_DEVCOREDUMP_IDLE:
382382
err = hci_devcd_init(hdev, MTK_COREDUMP_SIZE);
383-
if (err < 0)
383+
if (err < 0) {
384+
kfree_skb(skb);
384385
break;
386+
}
385387
data->cd_info.cnt = 0;
386388

387389
/* It is supposed coredump can be done within 5 seconds */
@@ -407,9 +409,6 @@ int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb)
407409
break;
408410
}
409411

410-
if (err < 0)
411-
kfree_skb(skb);
412-
413412
return err;
414413
}
415414
EXPORT_SYMBOL_GPL(btmtk_process_coredump);

0 commit comments

Comments
 (0)