Branch: refs/heads/master Home: https://github.com/bluez/bluez Commit: d8f3a3fa497f7beac81ac5b66323c4e77eec8dc4 https://github.com/bluez/bluez/commit/d8f3a3fa497f7beac81ac5b66323c4e77eec8dc4 Author: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Date: 2024-04-23 (Tue, 23 Apr 2024) Changed paths: M gdbus/gdbus.h M gdbus/object.c Log Message: ----------- gdbus: Add testing flags This adds testing flags which are similar to experimental but are only available for testing. Commit: e7578f9ddd079042e49f6ad69e64cc73d2abb72e https://github.com/bluez/bluez/commit/e7578f9ddd079042e49f6ad69e64cc73d2abb72e Author: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Date: 2024-04-23 (Tue, 23 Apr 2024) Changed paths: M src/bluetoothd.rst.in M src/btd.h M src/main.c M src/main.conf M src/profile.c M src/profile.h Log Message: ----------- main.conf: Add support for testing interfaces This adds support for D-Bus testing interfaces and testing profile drivers. Commit: 02ade13c439fc3add8d5ec98f50e1f52f7b9816f https://github.com/bluez/bluez/commit/02ade13c439fc3add8d5ec98f50e1f52f7b9816f Author: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Date: 2024-04-23 (Tue, 23 Apr 2024) Changed paths: M profiles/audio/ccp.c Log Message: ----------- ccp: Mark plugin for testing This makes ccp plugin for testing only rather than experimental since it is only meant for test validation as platforms shall integrate CCP directly into their telephony stack. Commit: 638774f603c2a216b8ec4a2866e1dfa37059918a https://github.com/bluez/bluez/commit/638774f603c2a216b8ec4a2866e1dfa37059918a Author: Vlad Pruteanu <vlad.pruteanu@xxxxxxx> Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M profiles/audio/bap.c Log Message: ----------- bap: Initialize bap_data for scanned device in bap_bcast_probe By moving the bap_data initialization for a scanned device to bap_adapter_probe() the adapter field of bap_data will already be set when short_lived_pa_sync is called. When adapter will be changed for bap_adapter, this will help eliminate an additional queue search (in short_lived_pa_sync). Commit: aa7f3574f275ea2c9964c7725c2b419c0cadce20 https://github.com/bluez/bluez/commit/aa7f3574f275ea2c9964c7725c2b419c0cadce20 Author: Vlad Pruteanu <vlad.pruteanu@xxxxxxx> Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M profiles/audio/bap.c Log Message: ----------- bap: Replace adapter in bap_data with bap_adapter This patch introduces the bap_adapter structure. In addition to btd_adapter it also holds the pa_timer_id and the bcast_pa_requests queue associated with that adapter. This enables convenient access to these variables since the functions that need them already utilize bap_data. For each adapter a new instance of bap_adapter is created and inserted into the global queue, bap_adapters. For each scanned source bap_bcast_probe searches the bap_adapters queue based on the adapter and stores the result in the bap_data associated with the source. Operations made on the old global queue are now made on bap_data->bap_adapter->bcast_pa_requests queue. While this commit sought to utilize the already existing bap_data in order to avoid searching in queues, a lookup was still necessary in bap_bcast_probe. Here, the bap_data for the scanned devices is created and the bap_adapter field must be set to the appropriate value. There is no way of getting the correct bap_adapter refference without searching the bap_adapters queue. Commit: 48a69222581c604916e18285298cf9b13db1c7d8 https://github.com/bluez/bluez/commit/48a69222581c604916e18285298cf9b13db1c7d8 Author: Vlad Pruteanu <vlad.pruteanu@xxxxxxx> Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M profiles/audio/bap.c Log Message: ----------- bap: Improve handling of pa_req timer The patch handles timers on a per adapter basis. The timer is now also started on setup_accept_io_broadcast, so BAP_PA_BIG_SYNC_REQ can be treated if the timer is stopped in the meantime. The timer is stopped if the bap_adapter's pa_req queue is empty. A pa_timer_id equal to 0 means that the timer is stopped. Commit: c7071911d57aa684f86f9458e33dfd9abb809c50 https://github.com/bluez/bluez/commit/c7071911d57aa684f86f9458e33dfd9abb809c50 Author: Vlad Pruteanu <vlad.pruteanu@xxxxxxx> Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M profiles/audio/bap.c Log Message: ----------- bap: Remove deleted devices from pa_req queue The bap_bcast_remove function has been updated to remove from the pa_req queue entries of devices that were freed. pa_req that are already in progress are treated by the bap_data_free function. The lookup in bap_bcast_remove was necessary. The entry corresponding to the calling service must be removed from the pa_req queue. There is no other way to get a refference to this entry other than to search in the queue. This patch fixes a crash that occurs when a device is freed before the pa_idle_timer handles it's entry in the pa_req queue. The following log was obtained while running an Unicast setup: ==105052==ERROR: AddressSanitizer: heap-use-after-free on address 0x60400001c418 at pc 0x55775caf1846 bp 0x7ffc83d9fb90 sp 0x7ffc83d9fb80 READ of size 8 at 0x60400001c418 thread T0 0 0x55775caf1845 in btd_service_get_device src/service.c:325 1 0x55775ca03da2 in short_lived_pa_sync profiles/audio/bap.c:2693 2 0x55775ca03da2 in pa_idle_timer profiles/audio/bap.c:1996 Commit: f141b27bcb526d1cd95d3301775808c9b011dcfe https://github.com/bluez/bluez/commit/f141b27bcb526d1cd95d3301775808c9b011dcfe Author: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M profiles/audio/bap.c Log Message: ----------- bap: Reword bap_adapter/adapter and pa_req/req Struct name already refers to the actual operation so don't repeat it again on the variable name which just makes the lines long for no reason. Commit: c42702cfc48e74d0d19a3d2f08049d2b5d0c85f4 https://github.com/bluez/bluez/commit/c42702cfc48e74d0d19a3d2f08049d2b5d0c85f4 Author: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> Date: 2024-04-24 (Wed, 24 Apr 2024) Changed paths: M profiles/audio/bap.c Log Message: ----------- bap: Fix use of unintialized variable This fixes the following trace found with valgrind: Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s) at 0x5318B0E: setsockopt (in /usr/lib64/libc.so.6) by 0x39C454: iso_set_qos (btio.c:899) by 0x39C622: bt_io_set (btio.c:1900) by 0x37F3B3: iso_do_big_sync (bap.c:2874) by 0x3991EC: server_cb (btio.c:265) by 0x3991EC: server_cb (btio.c:242) by 0x496C4FB: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.7600.6) by 0x49CA6B7: ??? (in /usr/lib64/libglib-2.0.so.0.7600.6) by 0x496BAFE: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.7600.6) by 0x4F9694: mainloop_run (mainloop-glib.c:66) by 0x4F9B27: mainloop_run_with_signal (mainloop-notify.c:188) by 0x2BE8F2: main (main.c:1464) Address 0x1fff0004c1 is on thread 1's stack in frame #2, created by bt_io_set (btio.c:1870) Compare: https://github.com/bluez/bluez/compare/30b741baa569...c42702cfc48e To unsubscribe from these emails, change your notification settings at https://github.com/bluez/bluez/settings/notifications