2015-08-05 21:16:29

by Jakub Pawlowski

[permalink] [raw]
Subject: [PATCH v1] Bluetooth: fix MGMT_EV_NEW_LONG_TERM_KEY event

This patch fixes how MGMT_EV_NEW_LONG_TERM_KEY event is build. Right now
val vield is filled with only 1 byte, instead of whole value. This bug
was introduced in
commit 1fc62c526a57 ("Bluetooth: Fix exposing full value of shortened LTKs")

Before that patch, if you paired with device using bluetoothd using simple
pairing, and then restarted bluetoothd, you would be able to re-connect,
but device would fail to establish encryption and would terminate
connection. After this patch connecting after bluetoothd restart works
fine.

Signed-off-by: Jakub Pawlowski <[email protected]>
---
net/bluetooth/mgmt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 7ab1915..e435438 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -7843,7 +7843,7 @@ void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent)
/* Make sure we copy only the significant bytes based on the
* encryption key size, and set the rest of the value to zeroes.
*/
- memcpy(ev.key.val, key->val, sizeof(key->enc_size));
+ memcpy(ev.key.val, key->val, key->enc_size);
memset(ev.key.val + key->enc_size, 0,
sizeof(ev.key.val) - key->enc_size);

--
2.1.4



2015-08-06 14:37:35

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v1] Bluetooth: fix MGMT_EV_NEW_LONG_TERM_KEY event

Hi Jakub,

> This patch fixes how MGMT_EV_NEW_LONG_TERM_KEY event is build. Right now
> val vield is filled with only 1 byte, instead of whole value. This bug
> was introduced in
> commit 1fc62c526a57 ("Bluetooth: Fix exposing full value of shortened LTKs")
>
> Before that patch, if you paired with device using bluetoothd using simple
> pairing, and then restarted bluetoothd, you would be able to re-connect,
> but device would fail to establish encryption and would terminate
> connection. After this patch connecting after bluetoothd restart works
> fine.
>
> Signed-off-by: Jakub Pawlowski <[email protected]>
> ---
> net/bluetooth/mgmt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

patch has been applied to bluetooth-stable tree.

Regards

Marcel