diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2014-11-13 11:55:17 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-11-15 03:46:49 +0300 |
commit | fa37c1aa30e538329b64dd55f401334f4bff47f5 (patch) | |
tree | 308b45076f7c0f0600ab97c51d5e474759fc4a20 /net/bluetooth/l2cap_core.c | |
parent | a809eff11f81e2dcf1e792586ef70693c60d7dc8 (diff) | |
download | linux-fa37c1aa30e538329b64dd55f401334f4bff47f5.tar.xz |
Bluetooth: Fix sending incorrect LE CoC PDU in BT_CONNECT2 state
For LE CoC L2CAP servers we don't do security level elevation during the
BT_CONNECT2 state (instead LE CoC simply sends an immediate error
response if the security level isn't high enough). Therefore if we get a
security level change while an LE CoC channel is in the BT_CONNECT2
state we should simply do nothing.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/l2cap_core.c')
-rw-r--r-- | net/bluetooth/l2cap_core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 52e1871d6334..76045497eaa1 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c @@ -7332,7 +7332,8 @@ int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) l2cap_start_connection(chan); else __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); - } else if (chan->state == BT_CONNECT2) { + } else if (chan->state == BT_CONNECT2 && + chan->mode != L2CAP_MODE_LE_FLOWCTL) { struct l2cap_conn_rsp rsp; __u16 res, stat; |