summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2011-01-19 12:06:51 +0530
committerGustavo F. Padovan <padovan@profusion.mobi>2011-01-19 14:40:43 -0200
commitd00ef24fc2923b65fdd440dc6445903e965841ac (patch)
tree679ed038188e94ddde990e3ec1d31fc56055f9bf
parent8556edd32f01c50a3c99e44dc2c3b1252ea59605 (diff)
downloadkernel-common-d00ef24fc2923b65fdd440dc6445903e965841ac.tar.gz
kernel-common-d00ef24fc2923b65fdd440dc6445903e965841ac.tar.bz2
kernel-common-d00ef24fc2923b65fdd440dc6445903e965841ac.zip
Bluetooth: Fix authentication request for L2CAP raw sockets
When there is an existing connection l2cap_check_security needs to be called to ensure that the security level of the new socket is fulfilled. Normally l2cap_do_start takes care of this, but that function doesn't get called for SOCK_RAW type sockets. This patch adds the necessary l2cap_check_security call to the appropriate branch in l2cap_do_connect. Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
-rw-r--r--net/bluetooth/l2cap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index ae227bf25563..7550abb0c96a 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1106,7 +1106,8 @@ static int l2cap_do_connect(struct sock *sk)
if (sk->sk_type != SOCK_SEQPACKET &&
sk->sk_type != SOCK_STREAM) {
l2cap_sock_clear_timer(sk);
- sk->sk_state = BT_CONNECTED;
+ if (l2cap_check_security(sk))
+ sk->sk_state = BT_CONNECTED;
} else
l2cap_do_start(sk);
}