Skip to content

Commit d48c896

Browse files
committed
Merge tag 'for-net-2026-01-22' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Luiz Augusto von Dentz says: ==================== bluetooth pull request for net: - hci_uart: fix null-ptr-deref in hci_uart_write_work - MGMT: Fix memory leak in set_ssp_complete * tag 'for-net-2026-01-22' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth: Bluetooth: MGMT: Fix memory leak in set_ssp_complete Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work ==================== Link: https://patch.msgid.link/20260122200751.2950279-1-luiz.dentz@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents deb5c20 + 1b9c17f commit d48c896

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

drivers/bluetooth/hci_ldisc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,8 @@ static int hci_uart_register_dev(struct hci_uart *hu)
685685
return err;
686686
}
687687

688+
set_bit(HCI_UART_PROTO_INIT, &hu->flags);
689+
688690
if (test_bit(HCI_UART_INIT_PENDING, &hu->hdev_flags))
689691
return 0;
690692

@@ -712,8 +714,6 @@ static int hci_uart_set_proto(struct hci_uart *hu, int id)
712714

713715
hu->proto = p;
714716

715-
set_bit(HCI_UART_PROTO_INIT, &hu->flags);
716-
717717
err = hci_uart_register_dev(hu);
718718
if (err) {
719719
return err;

net/bluetooth/mgmt.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1966,6 +1966,7 @@ static void set_ssp_complete(struct hci_dev *hdev, void *data, int err)
19661966
}
19671967

19681968
mgmt_cmd_status(cmd->sk, cmd->hdev->id, cmd->opcode, mgmt_err);
1969+
mgmt_pending_free(cmd);
19691970
return;
19701971
}
19711972

@@ -1984,6 +1985,7 @@ static void set_ssp_complete(struct hci_dev *hdev, void *data, int err)
19841985
sock_put(match.sk);
19851986

19861987
hci_update_eir_sync(hdev);
1988+
mgmt_pending_free(cmd);
19871989
}
19881990

19891991
static int set_ssp_sync(struct hci_dev *hdev, void *data)
@@ -6438,6 +6440,7 @@ static void set_advertising_complete(struct hci_dev *hdev, void *data, int err)
64386440
hci_dev_clear_flag(hdev, HCI_ADVERTISING);
64396441

64406442
settings_rsp(cmd, &match);
6443+
mgmt_pending_free(cmd);
64416444

64426445
new_settings(hdev, match.sk);
64436446

0 commit comments

Comments
 (0)