Bluetooth: Drop packets on ATT fixed channel on BR/EDR
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 3 Oct 2013 09:54:11 +0000 (02:54 -0700)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 3 Oct 2013 10:05:36 +0000 (13:05 +0300)
The ATT fixed channel is only valid when using LE connections. On
BR/EDR it is required to go through L2CAP connection oriented
channel for ATT.

Drop ATT packets when they are received on a BR/EDR connection.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
net/bluetooth/l2cap_core.c

index 102a510a153ad89d8f8050138f33157ef90debce..583517e1dd43cb0ac344881ae5dccd530177a44f 100644 (file)
@@ -6431,8 +6431,12 @@ drop:
 static void l2cap_att_channel(struct l2cap_conn *conn,
                              struct sk_buff *skb)
 {
+       struct hci_conn *hcon = conn->hcon;
        struct l2cap_chan *chan;
 
+       if (hcon->type != LE_LINK)
+               goto drop;
+
        chan = l2cap_global_chan_by_scid(BT_CONNECTED, L2CAP_CID_ATT,
                                         conn->src, conn->dst);
        if (!chan)