[linux-yocto] [PATCH] Bluetooth: Delay check for conn->smp in smp_conn_security()
Bruce Ashfield
bruce.ashfield at windriver.com
Fri Sep 11 07:21:42 PDT 2015
On 15-09-11 05:47 AM, Wu Zheng wrote:
> 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.
>
> Reported-by: Chuck Ebbert <cebbert.lkml at gmail.com>
> Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
> Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
> ---
> At the same time, the patch fixes the error warning issues of 6lowpan
> over Bluetooth LE connection failed between two Bluetooth LE devices.
>
> 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.
I've cherry-picked the commit and am running build tests now. I'll
push the tree once they are complete.
Bruce
> ---
> 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 */
>
More information about the linux-yocto
mailing list