From f35221d1def402a579a983efe747c2cedd766b50 Mon Sep 17 00:00:00 2001 From: Anderson Briglia Date: Tue, 7 Jun 2011 18:46:31 -0300 Subject: [PATCH] --- yaml --- r: 255827 b: refs/heads/master c: b501d6a1dc21eb61cbbc54e40780084f5d517164 h: refs/heads/master i: 255825: caeec77a5300fd4032d0ae53c0e0c0a0e334fa9d 255823: b0bd64a4b89d21d40fd236ab71376efbf54712a6 v: v3 --- [refs] | 2 +- trunk/net/bluetooth/l2cap_core.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ae07a16243c2..95bbfe7f081f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eb492e0169974ac6d168f11d1fc1e2753fe1f3b4 +refs/heads/master: b501d6a1dc21eb61cbbc54e40780084f5d517164 diff --git a/trunk/net/bluetooth/l2cap_core.c b/trunk/net/bluetooth/l2cap_core.c index cb68b27edc9b..865716504396 100644 --- a/trunk/net/bluetooth/l2cap_core.c +++ b/trunk/net/bluetooth/l2cap_core.c @@ -54,6 +54,7 @@ #include #include #include +#include int disable_ertm; @@ -909,12 +910,15 @@ static void l2cap_conn_ready(struct l2cap_conn *conn) __clear_chan_timer(chan); l2cap_state_change(chan, BT_CONNECTED); sk->sk_state_change(sk); + if (smp_conn_security(conn, chan->sec_level)) + BT_DBG("Insufficient security"); } if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) { __clear_chan_timer(chan); l2cap_state_change(chan, BT_CONNECTED); sk->sk_state_change(sk); + } else if (chan->state == BT_CONNECT) l2cap_do_start(chan); @@ -4060,6 +4064,11 @@ static void l2cap_recv_frame(struct l2cap_conn *conn, struct sk_buff *skb) l2cap_att_channel(conn, cid, skb); break; + case L2CAP_CID_SMP: + if (smp_sig_channel(conn, skb)) + l2cap_conn_del(conn->hcon, EACCES); + break; + default: l2cap_data_channel(conn, cid, skb); break;