summaryrefslogtreecommitdiff
path: root/net/bluetooth
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-10-03 02:54:11 -0700
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-03 13:05:36 +0300
commitb99707d7ee887f9df8b3f7cf75e1e9dbf3206df3 (patch)
tree7b212060090d48fbbcf15daef8dc55666debba71 /net/bluetooth
parentae4fd2d37433ba58e17adbf1694b7b66eeaec76c (diff)
downloadlinux-b99707d7ee887f9df8b3f7cf75e1e9dbf3206df3.tar.gz
linux-b99707d7ee887f9df8b3f7cf75e1e9dbf3206df3.tar.xz
Bluetooth: Drop packets on ATT fixed channel on BR/EDR
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>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap_core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 102a510a153a..583517e1dd43 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -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)