|
@@ -382,13 +382,14 @@ static int l2cap_sock_getsockopt(struct socket *sock, int level, int optname, ch
|
|
|
}
|
|
|
|
|
|
memset(&sec, 0, sizeof(sec));
|
|
|
- if (chan->conn)
|
|
|
+ if (chan->conn) {
|
|
|
sec.level = chan->conn->hcon->sec_level;
|
|
|
- else
|
|
|
- sec.level = chan->sec_level;
|
|
|
|
|
|
- if (sk->sk_state == BT_CONNECTED)
|
|
|
- sec.key_size = chan->conn->hcon->enc_key_size;
|
|
|
+ if (sk->sk_state == BT_CONNECTED)
|
|
|
+ sec.key_size = chan->conn->hcon->enc_key_size;
|
|
|
+ } else {
|
|
|
+ sec.level = chan->sec_level;
|
|
|
+ }
|
|
|
|
|
|
len = min_t(unsigned int, len, sizeof(sec));
|
|
|
if (copy_to_user(optval, (char *) &sec, len))
|