diff mbox series

net: bluetooth: Fix null pointer dereference in hci_event_packet()

Message ID 20200930141813.410209-1-anmol.karan123@gmail.com
State Superseded
Headers show
Series net: bluetooth: Fix null pointer dereference in hci_event_packet() | expand

Commit Message

Anmol Karn Sept. 30, 2020, 2:18 p.m. UTC
AMP_MGR is getting derefernced in hci_phy_link_complete_evt(), when called from hci_event_packet() and there is a possibility, that hcon->amp_mgr may not be found when accessing after initialization of hcon.

- net/bluetooth/hci_event.c:4945
The bug seems to get triggered in this line:

bredr_hcon = hcon->amp_mgr->l2cap_conn->hcon;

Fix it by adding a NULL check for the hcon->amp_mgr before checking the ev-status.

Fixes: d5e911928bd8 ("Bluetooth: AMP: Process Physical Link Complete evt")
Reported-and-tested-by: syzbot+0bef568258653cff272f@syzkaller.appspotmail.com 
Link: https://syzkaller.appspot.com/bug?extid=0bef568258653cff272f 
Signed-off-by: Anmol Karn <anmol.karan123@gmail.com>
---
Change in v3:
  - changed return o; to return; (Reported-by: kernel test robot <lkp@intel.com>
)

 net/bluetooth/hci_event.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Marcel Holtmann Oct. 1, 2020, 7:06 a.m. UTC | #1
Hi Anmol,

> AMP_MGR is getting derefernced in hci_phy_link_complete_evt(), when called from hci_event_packet() and there is a possibility, that hcon->amp_mgr may not be found when accessing after initialization of hcon.

> 

> - net/bluetooth/hci_event.c:4945

> The bug seems to get triggered in this line:

> 

> bredr_hcon = hcon->amp_mgr->l2cap_conn->hcon;

> 

> Fix it by adding a NULL check for the hcon->amp_mgr before checking the ev-status.

> 

> Fixes: d5e911928bd8 ("Bluetooth: AMP: Process Physical Link Complete evt")

> Reported-and-tested-by: syzbot+0bef568258653cff272f@syzkaller.appspotmail.com 

> Link: https://syzkaller.appspot.com/bug?extid=0bef568258653cff272f 

> Signed-off-by: Anmol Karn <anmol.karan123@gmail.com>

> ---

> Change in v3:

>  - changed return o; to return; (Reported-by: kernel test robot <lkp@intel.com>

> )

> 

> net/bluetooth/hci_event.c | 5 +++++

> 1 file changed, 5 insertions(+)


patch has been applied to bluetooth-next tree.

Regards

Marcel
diff mbox series

Patch

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 4b7fc430793c..bbe0ca42cad2 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -4936,6 +4936,11 @@  static void hci_phy_link_complete_evt(struct hci_dev *hdev,
 		return;
 	}
 
+	if (!hcon->amp_mgr) {
+		hci_dev_unlock(hdev);
+		return;
+	}
+
 	if (ev->status) {
 		hci_conn_del(hcon);
 		hci_dev_unlock(hdev);