File tree Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -249,12 +249,12 @@ static void hci_conn_disconnect(struct hci_conn *conn)
249
249
__u8 reason = hci_proto_disconn_ind (conn );
250
250
251
251
switch (conn -> type ) {
252
- case ACL_LINK :
253
- hci_acl_disconn (conn , reason );
254
- break ;
255
252
case AMP_LINK :
256
253
hci_amp_disconn (conn , reason );
257
254
break ;
255
+ default :
256
+ hci_acl_disconn (conn , reason );
257
+ break ;
258
258
}
259
259
}
260
260
Original file line number Diff line number Diff line change @@ -859,6 +859,19 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
859
859
860
860
skb_pull (skb , sizeof (code ));
861
861
862
+ /*
863
+ * The SMP context must be initialized for all other PDUs except
864
+ * pairing and security requests. If we get any other PDU when
865
+ * not initialized simply disconnect (done if this function
866
+ * returns an error).
867
+ */
868
+ if (code != SMP_CMD_PAIRING_REQ && code != SMP_CMD_SECURITY_REQ &&
869
+ !conn -> smp_chan ) {
870
+ BT_ERR ("Unexpected SMP command 0x%02x. Disconnecting." , code );
871
+ kfree_skb (skb );
872
+ return - ENOTSUPP ;
873
+ }
874
+
862
875
switch (code ) {
863
876
case SMP_CMD_PAIRING_REQ :
864
877
reason = smp_cmd_pairing_req (conn , skb );
You can’t perform that action at this time.
0 commit comments