diff options
author | Andrei Emeltchenko <andrei.emeltchenko@intel.com> | 2012-10-05 16:56:54 +0300 |
---|---|---|
committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2012-10-08 06:15:11 +0800 |
commit | 85e34368dea6fc8a2d16464e01c85d3b7bd682bd (patch) | |
tree | 162bc38530ab077e3d73dff6293b814108cff17f /net/bluetooth/l2cap_sock.c | |
parent | 079db0c6e3854b3af9808268f3b884fa48ed0034 (diff) | |
download | op-kernel-dev-85e34368dea6fc8a2d16464e01c85d3b7bd682bd.zip op-kernel-dev-85e34368dea6fc8a2d16464e01c85d3b7bd682bd.tar.gz |
Bluetooth: Fix dereference after NULL check
Move code dereferencing possible NULL pointer to the check branch.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'net/bluetooth/l2cap_sock.c')
-rw-r--r-- | net/bluetooth/l2cap_sock.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index 2542abd..a71c408 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@ -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)) |