* [PATCH BlueZ 1/2] device: Fix not always storing device info
@ 2023-03-08 0:51 Luiz Augusto von Dentz
2023-03-08 0:51 ` [PATCH BlueZ 2/2] gatt: Fix creating duplicated objects Luiz Augusto von Dentz
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Luiz Augusto von Dentz @ 2023-03-08 0:51 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
When updating the device address check if the device is marked as
temporary before attempting to call store_device_info otherwise it will
have no effect and instead btd_device_set_temporary must be called.
---
src/device.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/device.c b/src/device.c
index df50ce7b4f6c..652c03606b9e 100644
--- a/src/device.c
+++ b/src/device.c
@@ -4412,7 +4412,10 @@ void device_update_addr(struct btd_device *device, const bdaddr_t *bdaddr,
bacpy(&device->bdaddr, bdaddr);
device->bdaddr_type = bdaddr_type;
- store_device_info(device);
+ if (device->temporary)
+ btd_device_set_temporary(device, false);
+ else
+ store_device_info(device);
g_dbus_emit_property_changed(dbus_conn, device->path,
DEVICE_INTERFACE, "Address");
--
2.39.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH BlueZ 2/2] gatt: Fix creating duplicated objects
2023-03-08 0:51 [PATCH BlueZ 1/2] device: Fix not always storing device info Luiz Augusto von Dentz
@ 2023-03-08 0:51 ` Luiz Augusto von Dentz
2023-03-08 2:19 ` [BlueZ,1/2] device: Fix not always storing device info bluez.test.bot
2023-03-11 0:40 ` [PATCH BlueZ 1/2] " patchwork-bot+bluetooth
2 siblings, 0 replies; 4+ messages in thread
From: Luiz Augusto von Dentz @ 2023-03-08 0:51 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This checks cid before attempting to create device, if the device is
using an RPA it could be that the MGMT event has not been processed yet
which would lead to create a second copy of the same device using its
identity address.
---
src/gatt-database.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/gatt-database.c b/src/gatt-database.c
index ea282d4bc193..3b53bf2a3c84 100644
--- a/src/gatt-database.c
+++ b/src/gatt-database.c
@@ -632,6 +632,7 @@ static void connect_cb(GIOChannel *io, GError *gerr, gpointer user_data)
struct btd_device *device;
uint8_t dst_type;
bdaddr_t src, dst;
+ uint16_t cid;
if (gerr) {
error("%s", gerr->message);
@@ -641,6 +642,7 @@ static void connect_cb(GIOChannel *io, GError *gerr, gpointer user_data)
bt_io_get(io, &gerr, BT_IO_OPT_SOURCE_BDADDR, &src,
BT_IO_OPT_DEST_BDADDR, &dst,
BT_IO_OPT_DEST_TYPE, &dst_type,
+ BT_IO_OPT_CID, &cid,
BT_IO_OPT_INVALID);
if (gerr) {
error("bt_io_get: %s", gerr->message);
@@ -655,9 +657,21 @@ static void connect_cb(GIOChannel *io, GError *gerr, gpointer user_data)
if (!adapter)
return;
- device = btd_adapter_get_device(adapter, &dst, dst_type);
- if (!device)
+ /* Check cid before attempting to create device, if the device is using
+ * an RPA it could be that the MGMT event has not been processed yet
+ * which would lead to create a second copy of the same device using its
+ * identity address.
+ */
+ if (cid == BT_ATT_CID)
+ device = btd_adapter_get_device(adapter, &dst, dst_type);
+ else
+ device = btd_adapter_find_device(adapter, &dst, dst_type);
+
+ if (!device) {
+ error("Unable to find device, dropping connection attempt");
+ g_io_channel_shutdown(io, FALSE, NULL);
return;
+ }
device_attach_att(device, io);
}
--
2.39.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [BlueZ,1/2] device: Fix not always storing device info
2023-03-08 0:51 [PATCH BlueZ 1/2] device: Fix not always storing device info Luiz Augusto von Dentz
2023-03-08 0:51 ` [PATCH BlueZ 2/2] gatt: Fix creating duplicated objects Luiz Augusto von Dentz
@ 2023-03-08 2:19 ` bluez.test.bot
2023-03-11 0:40 ` [PATCH BlueZ 1/2] " patchwork-bot+bluetooth
2 siblings, 0 replies; 4+ messages in thread
From: bluez.test.bot @ 2023-03-08 2:19 UTC (permalink / raw)
To: linux-bluetooth, luiz.dentz
[-- Attachment #1: Type: text/plain, Size: 1293 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=727684
---Test result---
Test Summary:
CheckPatch PASS 0.71 seconds
GitLint PASS 0.49 seconds
BuildEll PASS 26.25 seconds
BluezMake PASS 763.65 seconds
MakeCheck PASS 11.06 seconds
MakeDistcheck PASS 154.66 seconds
CheckValgrind PASS 241.74 seconds
CheckSmatch PASS 323.62 seconds
bluezmakeextell PASS 97.21 seconds
IncrementalBuild PASS 1235.69 seconds
ScanBuild WARNING 983.36 seconds
Details
##############################
Test: ScanBuild - WARNING
Desc: Run Scan Build
Output:
src/gatt-database.c:1152:10: warning: Value stored to 'bits' during its initialization is never read
uint8_t bits[] = { BT_GATT_CHRC_CLI_FEAT_ROBUST_CACHING,
^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH BlueZ 1/2] device: Fix not always storing device info
2023-03-08 0:51 [PATCH BlueZ 1/2] device: Fix not always storing device info Luiz Augusto von Dentz
2023-03-08 0:51 ` [PATCH BlueZ 2/2] gatt: Fix creating duplicated objects Luiz Augusto von Dentz
2023-03-08 2:19 ` [BlueZ,1/2] device: Fix not always storing device info bluez.test.bot
@ 2023-03-11 0:40 ` patchwork-bot+bluetooth
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+bluetooth @ 2023-03-11 0:40 UTC (permalink / raw)
To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
Hello:
This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Tue, 7 Mar 2023 16:51:57 -0800 you wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
>
> When updating the device address check if the device is marked as
> temporary before attempting to call store_device_info otherwise it will
> have no effect and instead btd_device_set_temporary must be called.
> ---
> src/device.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
Here is the summary with links:
- [BlueZ,1/2] device: Fix not always storing device info
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=581aae6a2722
- [BlueZ,2/2] gatt: Fix creating duplicated objects
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=3842320f450e
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-03-11 0:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-08 0:51 [PATCH BlueZ 1/2] device: Fix not always storing device info Luiz Augusto von Dentz
2023-03-08 0:51 ` [PATCH BlueZ 2/2] gatt: Fix creating duplicated objects Luiz Augusto von Dentz
2023-03-08 2:19 ` [BlueZ,1/2] device: Fix not always storing device info bluez.test.bot
2023-03-11 0:40 ` [PATCH BlueZ 1/2] " patchwork-bot+bluetooth
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.