summaryrefslogtreecommitdiff
path: root/net/bluetooth
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-11-18 22:15:20 +0100
committerDavid S. Miller <davem@sunset.davemloft.net>2006-11-21 16:16:32 -0800
commit354f60a9952d0af59e684b91cc6e06b95fbbf5ef (patch)
tree56b583c406b7df011049ec2d0ca0c8c75f94bdc6 /net/bluetooth
parent820ae1b865caa05e0614004d0183ca70de2b8665 (diff)
downloadkernel-common-354f60a9952d0af59e684b91cc6e06b95fbbf5ef.tar.gz
kernel-common-354f60a9952d0af59e684b91cc6e06b95fbbf5ef.tar.bz2
kernel-common-354f60a9952d0af59e684b91cc6e06b95fbbf5ef.zip
[Bluetooth] Ignore L2CAP config requests on disconnect
Any L2CAP connection in disconnecting state shall not response to any further config requests from the remote side. So in case such a request is received, ignore it. Signed-off-by: Ville Tervo <ville.tervo@nokia.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index c09d4a20d696..bbf78e6a7bc3 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1533,6 +1533,9 @@ static inline int l2cap_config_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr
if (!(sk = l2cap_get_chan_by_scid(&conn->chan_list, dcid)))
return -ENOENT;
+ if (sk->sk_state == BT_DISCONN)
+ goto unlock;
+
l2cap_parse_conf_req(sk, req->data, cmd->len - sizeof(*req));
if (flags & 0x0001) {