From: Wu Zheng <wu.zh...@intel.com>

There are several actions that smp_conn_security() might make that do
not require a valid SMP context (conn->smp pointer). One of these
actions is to encrypt the link with an existing LTK. If the SMP
context wasn't initialized properly we should still allow the
independent actions to be done, i.e. the check for the context should
only be done at the last possible moment.

At the same time, the patch fixes the error warning issues of 6lowpan
over Bluetooth LE connection failed between two Bluetooth LE devices.

Signed-off-by: Wu Zheng <wu.zh...@intel.com>

The patch was imported from the bluetooth git server
(http://git.kernel.org/cgit/linux/kernel/git/bluetooth/bluetooth-next.git)
as of commit id 0dd5c7aa199b25a88e9fa72824abaf0020ec8066.

Reported-by: Chuck Ebbert <cebbert.l...@gmail.com>
Signed-off-by: Johan Hedberg <johan.hedb...@intel.com>
Signed-off-by: Marcel Holtmann <mar...@holtmann.org>
---
 net/bluetooth/smp.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index 7b815bc..69ad509 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -2294,12 +2294,6 @@ int smp_conn_security(struct hci_conn *hcon, __u8 
sec_level)
        if (!conn)
                return 1;
 
-       chan = conn->smp;
-       if (!chan) {
-               BT_ERR("SMP security requested but not available");
-               return 1;
-       }
-
        if (!hci_dev_test_flag(hcon->hdev, HCI_LE_ENABLED))
                return 1;
 
@@ -2313,6 +2307,12 @@ int smp_conn_security(struct hci_conn *hcon, __u8 
sec_level)
                if (smp_ltk_encrypt(conn, hcon->pending_sec_level))
                        return 0;
 
+       chan = conn->smp;
+       if (!chan) {
+               BT_ERR("SMP security requested but not available");
+               return 1;
+       }
+
        l2cap_chan_lock(chan);
 
        /* If SMP is already in progress ignore this request */
-- 
2.1.4

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to