Bluetooth: Fix hci_update_random_address() error return for no crypto
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 8 Aug 2014 06:32:48 +0000 (09:32 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 14 Aug 2014 06:49:16 +0000 (08:49 +0200)
If the AES crypto context is not available we cannot generate new RPAs.
We should therefore cleanly return an error from the function
responsible for updating the random address.

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

index 217ef83..8604770 100644 (file)
@@ -3882,6 +3882,12 @@ int hci_update_random_address(struct hci_request *req, bool require_privacy,
                    !bacmp(&hdev->random_addr, &hdev->rpa))
                        return 0;
 
+               if (!hdev->tfm_aes) {
+                       BT_ERR("%s crypto not available to generate RPA",
+                              hdev->name);
+                       return -EOPNOTSUPP;
+               }
+
                err = smp_generate_rpa(hdev->tfm_aes, hdev->irk, &hdev->rpa);
                if (err < 0) {
                        BT_ERR("%s failed to generate new RPA", hdev->name);