summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-10-03 00:03:39 -0700
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-03 10:13:30 +0300
commitae4fd2d37433ba58e17adbf1694b7b66eeaec76c (patch)
tree3c2481da00bc5a1ed74a428ba433f342d8f7ef4d /net
parent7b9899dbcf432b188f3cc22bd1ad9e8050c496fc (diff)
downloadlinux-ae4fd2d37433ba58e17adbf1694b7b66eeaec76c.tar.bz2
Bluetooth: L2CAP connectionless channels are only valid for BR/EDR
When receiving connectionless packets on a LE connection, just drop the packet. There is no concept of connectionless channels for LE. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net')
-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 65c53719b76c..102a510a153a 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -6403,8 +6403,12 @@ done:
static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm,
struct sk_buff *skb)
{
+ struct hci_conn *hcon = conn->hcon;
struct l2cap_chan *chan;
+ if (hcon->type != ACL_LINK)
+ goto drop;
+
chan = l2cap_global_chan_by_psm(0, psm, conn->src, conn->dst);
if (!chan)
goto drop;