aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 01f750142d55..88340d24d11d 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -805,7 +805,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_
805 l2cap_pi(sk)->sport = la->l2_psm; 805 l2cap_pi(sk)->sport = la->l2_psm;
806 sk->sk_state = BT_BOUND; 806 sk->sk_state = BT_BOUND;
807 807
808 if (btohs(la->l2_psm) == 0x0001) 808 if (btohs(la->l2_psm) == 0x0001 || btohs(la->l2_psm) == 0x0003)
809 l2cap_pi(sk)->sec_level = BT_SECURITY_SDP; 809 l2cap_pi(sk)->sec_level = BT_SECURITY_SDP;
810 } 810 }
811 811
@@ -852,6 +852,9 @@ static int l2cap_do_connect(struct sock *sk)
852 auth_type = HCI_AT_NO_BONDING_MITM; 852 auth_type = HCI_AT_NO_BONDING_MITM;
853 else 853 else
854 auth_type = HCI_AT_NO_BONDING; 854 auth_type = HCI_AT_NO_BONDING;
855
856 if (l2cap_pi(sk)->sec_level == BT_SECURITY_LOW)
857 l2cap_pi(sk)->sec_level = BT_SECURITY_SDP;
855 } else { 858 } else {
856 switch (l2cap_pi(sk)->sec_level) { 859 switch (l2cap_pi(sk)->sec_level) {
857 case BT_SECURITY_HIGH: 860 case BT_SECURITY_HIGH: