Bluetooth: Fix authentication request for L2CAP raw sockets
authorJohan Hedberg <johan.hedberg@nokia.com>
Wed, 19 Jan 2011 06:36:51 +0000 (12:06 +0530)
committerGustavo F. Padovan <padovan@profusion.mobi>
Wed, 19 Jan 2011 16:40:43 +0000 (14:40 -0200)
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>
net/bluetooth/l2cap.c

index ae227bf2556364bc91a2bcdb14f95b48ecf6d44f..7550abb0c96a36d60869009daecd20a601eb7263 100644 (file)
@@ -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);
        }