diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2014-01-29 03:16:49 +0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2014-02-13 11:51:38 +0400 |
commit | b783fbc3a55691f978b9f78d552a0d7e7d2705ad (patch) | |
tree | ebbe9231aef608fc1defd19342824d94ebcaa286 /net/bluetooth/l2cap_sock.c | |
parent | 61202e4de92d9bf7169dd5f2ef2d6c6e5683ec53 (diff) | |
download | linux-b783fbc3a55691f978b9f78d552a0d7e7d2705ad.tar.xz |
Bluetooth: Refuse peer L2CAP address reading when not connected
When we're not connected the peer address information is undefined. This
patch fixes the remote address getting to return a proper error in case
the state is anything else than BT_CONNECTED.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/l2cap_sock.c')
-rw-r--r-- | net/bluetooth/l2cap_sock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index ae4f6b593fc0..b0aaa651a5ba 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -366,6 +366,9 @@ static int l2cap_sock_getname(struct socket *sock, struct sockaddr *addr, BT_DBG("sock %p, sk %p", sock, sk); + if (peer && sk->sk_state != BT_CONNECTED) + return -ENOTCONN; + memset(la, 0, sizeof(struct sockaddr_l2)); addr->sa_family = AF_BLUETOOTH; *len = sizeof(struct sockaddr_l2); |