aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bluetooth/l2cap_sock.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index fcf012a422fd..3f21207d59e5 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -69,6 +69,9 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
69 if (la.l2_cid && la.l2_psm) 69 if (la.l2_cid && la.l2_psm)
70 return -EINVAL; 70 return -EINVAL;
71 71
72 if (!bdaddr_type_is_valid(la.l2_bdaddr_type))
73 return -EINVAL;
74
72 lock_sock(sk); 75 lock_sock(sk);
73 76
74 if (sk->sk_state != BT_OPEN) { 77 if (sk->sk_state != BT_OPEN) {
@@ -144,6 +147,9 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
144 if (la.l2_cid && la.l2_psm) 147 if (la.l2_cid && la.l2_psm)
145 return -EINVAL; 148 return -EINVAL;
146 149
150 if (!bdaddr_type_is_valid(la.l2_bdaddr_type))
151 return -EINVAL;
152
147 err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid), 153 err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid),
148 &la.l2_bdaddr, la.l2_bdaddr_type); 154 &la.l2_bdaddr, la.l2_bdaddr_type);
149 if (err) 155 if (err)