diff options
author | Andrei Emeltchenko <andrei.emeltchenko@intel.com> | 2012-10-05 09:56:53 -0400 |
---|---|---|
committer | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2012-10-07 18:14:30 -0400 |
commit | 079db0c6e3854b3af9808268f3b884fa48ed0034 (patch) | |
tree | d65a7dca5ba34a0822d6c2c6721da78401b88cfa /net/bluetooth/amp.c | |
parent | dfee1ebc0e363ff1dc233c4a5246bf3e7f5c5ca6 (diff) |
Bluetooth: AMP: Fix possible NULL dereference
Check that link key exist before accessing.
Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'net/bluetooth/amp.c')
-rw-r--r-- | net/bluetooth/amp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bluetooth/amp.c b/net/bluetooth/amp.c index 5dab2d1c7c82..b6e1c3ac74f1 100644 --- a/net/bluetooth/amp.c +++ b/net/bluetooth/amp.c | |||
@@ -184,6 +184,10 @@ int phylink_gen_key(struct hci_conn *conn, u8 *data, u8 *len, u8 *type) | |||
184 | *len = HCI_AMP_LINK_KEY_SIZE; | 184 | *len = HCI_AMP_LINK_KEY_SIZE; |
185 | 185 | ||
186 | key = hci_find_link_key(hdev, &conn->dst); | 186 | key = hci_find_link_key(hdev, &conn->dst); |
187 | if (!key) { | ||
188 | BT_DBG("No Link key for conn %p dst %pMR", conn, &conn->dst); | ||
189 | return -EACCES; | ||
190 | } | ||
187 | 191 | ||
188 | /* BR/EDR Link Key concatenated together with itself */ | 192 | /* BR/EDR Link Key concatenated together with itself */ |
189 | memcpy(&keybuf[0], key->val, HCI_LINK_KEY_SIZE); | 193 | memcpy(&keybuf[0], key->val, HCI_LINK_KEY_SIZE); |