Bluetooth: Fix ignoring debug keys in mgmt_load_link_keys
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 24 Jun 2014 11:00:26 +0000 (14:00 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 3 Jul 2014 15:42:46 +0000 (17:42 +0200)
We should never allow user space to feed back debug keys to the kernel.
If the user desires to use debug keys require setting the appropriate
debug keys mode and performing a new pairing.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/mgmt.c

index 634b44d..747746b 100644 (file)
@@ -2426,6 +2426,12 @@ static int load_link_keys(struct sock *sk, struct hci_dev *hdev, void *data,
        for (i = 0; i < key_count; i++) {
                struct mgmt_link_key_info *key = &cp->keys[i];
 
+               /* Always ignore debug keys and require a new pairing if
+                * the user wants to use them.
+                */
+               if (key->type == HCI_LK_DEBUG_COMBINATION)
+                       continue;
+
                hci_add_link_key(hdev, NULL, &key->addr.bdaddr, key->val,
                                 key->type, key->pin_len, NULL);
        }