Bluetooth: Fix missing check for FIPS security level
authorJohan Hedberg <johan.hedberg@intel.com>
Mon, 2 Jun 2014 07:12:44 +0000 (10:12 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 2 Jun 2014 07:34:36 +0000 (00:34 -0700)
When checking whether a legacy link key provides at least HIGH security
level we also need to check for FIPS level which is one step above HIGH.
This patch fixes a missing check in the hci_link_key_request_evt()
function.

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

index 6cf9596ff69b766de6b72768773a830a8ec11fba..df7895e8fcc8007977119a69230346a4c0465f99 100644 (file)
@@ -3077,7 +3077,8 @@ static void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
                }
 
                if (key->type == HCI_LK_COMBINATION && key->pin_len < 16 &&
-                   conn->pending_sec_level == BT_SECURITY_HIGH) {
+                   (conn->pending_sec_level == BT_SECURITY_HIGH ||
+                    conn->pending_sec_level == BT_SECURITY_FIPS)) {
                        BT_DBG("%s ignoring key unauthenticated for high security",
                               hdev->name);
                        goto not_found;