Commits

Commit Message Author Age Changes
99deeea8 btmon: Decode Broadcast Name This adds support for decoding Broadcast Name: > HCI Event: LE Meta Event (0x3e) plen 57 LE Extended Advertising Report (0x0d) Num reports: 1 Entry 0 Event type: 0x0000 Props: 0x0000 Data status: Complete Address type: Random (0x01) Address: XX:XX:XX:XX:XX:XX (Non-Resolvable) Primary PHY: LE 1M Secondary PHY: LE 2M SID: 0x02 TX power: 127 dBm RSSI: -67 dBm (0xbd) Periodic advertising interval: 180.00 msec (0x0090) Direct address type: Public (0x00) Direct address: 00:00:00:00:00:00 (OUI 00-00-00) Data length: 0x1f 06 16 52 18 2f 92 f3 05 16 56 18 04 00 11 30 4c ..R./....V....0L 75 69 7a 27 73 20 53 32 33 20 55 6c 74 72 61 uiz's S23 Ultra Service Data: Broadcast Audio Announcement (0x1852) Broadcast ID: 15962671 (0xf3922f) Service Data: Public Broadcast Announcement (0x1856) Data[2]: 0400 Broadcast Name: Luiz's S23 Ultra Luiz Augusto von Dentz 8 months ago 1 file, +7, -0
d5ef5730 bap: don't track streams without setup except for ucast server data->streams is is used for determining which streams can connect to listening socket. This stream list is specific to ucast server. Rename the variable to data->server_streams, and only put ucast server streams there. Fixes data->streams accumulating dead stream pointers. Pauli Virtanen 8 months ago 1 file, +10, -14
578a6fd6 shared/bap: fix crash when removing PAC When PAC is removed, streams need to go through RELEASING flow, which in some cases is not immediate. Access to stream->lpac is UAF during this time, e.g. in profiles/audio/bap.c:bap_find_setup_by_stream Allow stream->lpac == NULL. This should occur only if stream is RELEASING. When releasing streams due to removed PAC, do RELEASING->IDLE as we can't cache config then. Pauli Virtanen 8 months ago 1 file, +42, -10
73ae3fb9 shared/gatt-db: fix crash on bad attribute index in get_char_data Fix AddressSanitizer: heap-buffer-overflow when index == 0. Pauli Virtanen 8 months ago 1 file, +2, -2
e3c5f605 workflows: Add stale action This adds stale action to which marks github issues as stale after 30 days of inactivity, after an issue is marked as stale if it remais stale for another 5 days then it is marked as closed. Luiz Augusto von Dentz 8 months ago 1 file, +14, -0
8d472b87 obexd: only run one instance at once Obex is a device-oriented protocol, so only one instance can run per device. But Linux file security is user-oriented, so obexd should be a user service. Tell systemd to only run this service for the first non-system user to log in. Without this patch, errors like the following will occur if you use the "switch account" feature of your desktop environment, then log in with another account: Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 00001133-0000-1000-8000-00805f9b34fb which is already registered Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 00001132-0000-1000-8000-00805f9b34fb which is already registered Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 0000112f-0000-1000-8000-00805f9b34fb which is already registered Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 00001104-0000-1000-8000-00805f9b34fb which is already registered Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 00001106-0000-1000-8000-00805f9b34fb which is already registered Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 00001105-0000-1000-8000-00805f9b34fb which is already registered Mar 26 15:20:38 andrews-2024-laptop bluetoothd[873]: src/profile.c:register_profile() :1.2016 tried to register 00005005-0000-1000-8000-0002ee000001 which is already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered Mar 26 15:20:38 andrews-2024-laptop obexd[1795560]: bluetooth: RequestProfile error: org.bluez.Error.NotPermitted, UUID already registered The above errors indicate the service completely failed to register, so this does not change the user experience beyond removing the above messages. Specifically, the first user who logs in to a multi-user system still retains obex access to devices paired by users who log in later. This is based on a pair of recent changes to the FluidSynth daemon: https://github.com/FluidSynth/fluidsynth/pull/1491 https://github.com/FluidSynth/fluidsynth/pull/1528 This was discussed in the comments for a GitHub advisory available at https://github.com/bluez/bluez/security/advisories/GHSA-fpgq-25xf-jcwv but comments are not shown in the published version of the advisory. To summarise the useful conversation with Luiz Augusto von Dentz: Obex requires access to the user's home directory, so an attacker can only transfer files between locations the user controls. That may be a problem if the user who runs obexd is different to the user who paired the device, but solving that would involve pairing per-user, which causes other problems. Bluetooth connections can be initiated by peripherals, so switching user could trigger re-pairing and cause the original user to lose access to the device. This may seem reasonable for file access, but for example users would likely object to constantly re-pairing their Bluetooth keyboard. Andrew Sayers 8 months ago 1 file, +9, -0
2a569ec8 mesh: Fix build errors when compiling on fc42 ./mesh/crypto.c: In function ‘mesh_crypto_device_key’: ./mesh/crypto.c:436:33: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (5 chars into 4 available) [-Werror=unterminated-string-initialization] 436 | const uint8_t prdk[4] = "prdk"; | ^~~~~~ Luiz Augusto von Dentz 8 months ago 2 files, +8, -8
e501c8ab shared/shell: Fix build errors in fc42 This fixes the following errors: src/shared/shell.c: In function 'rl_cleanup': src/shared/shell.c:1429:20: error: zero-length gnu_printf format string [-Werror=format-zero-length] 1429 | rl_message(""); | ^~ Luiz Augusto von Dentz 8 months ago 1 file, +1, -1
aedd7b93 bap: Add support for using SID for broadcast receiver Broadcast receiver needs to set the SID of the advertisement, for now that is done by using 0xff which indicates to the kernel to perform to discover what is the actual SID in use over the air. Luiz Augusto von Dentz 9 months ago 4 files, +42, -31
64e7377d btio: Add support to BT_IO_OPT_ISO_BC_SID to bt_io_get This adds support for reading BT_IO_OPT_ISO_BC_SID using bt_io_get Luiz Augusto von Dentz 9 months ago 1 file, +28, -1
b4c5300f iso-tester: Test getpeername return SID If test is not setting a valid SID (0xff) use getpeername to validate the SID gets updated. Luiz Augusto von Dentz 9 months ago 1 file, +34, -0
7e67dc9d iso-tester: Add test for SID=0xff This adds the following test which is used to verify that when application sets bc_sid to 0xff the kernel will attempt to scan for a valid SID before attempting to create the PA sync: ISO Broadcaster Receiver SID 0xff Luiz Augusto von Dentz 9 months ago 1 file, +16, -0
e5a27a9c btdev: Fix not matching SID on le_pa_sync_estabilished In order to estabilish a PA sync the advertising SID must match: 7.8.67. LE Periodic Advertising Create Sync command: 'The Advertising_SID parameter, if used, specifies the value that shall match the Advertising SID subfield in the ADI field of the received advertisement for it to be used to synchronize.' Luiz Augusto von Dentz 9 months ago 1 file, +23, -3
709aa00a btdev: Check for valid SID on BT_HCI_CMD_LE_PA_CREATE_SYNC Luiz Augusto von Dentz 9 months ago 1 file, +6, -0
890149c1 bap: Fix not setting SID for broadcast receiver SID most be set otherwise 0x00 is assume which may not be what the broadcast source is using over the air. but since we don't have access to the SID of the advertisement in userspace mark de SID as invalid (0xff) so the kernel fill it up while scanning when creating the PA sync. Luiz Augusto von Dentz 9 months ago 1 file, +2, -0
f8e7bcfd btdev: Fix checking for BR/EDR scan enable rather than LE for PA PA is exclusive to LE so le_scan_enable flag shall be checked not scan_enable. Luiz Augusto von Dentz 9 months ago 1 file, +1, -1
0b3d49f4 policy: fix HSP/HFP reconnection This patch removes checking whether A2DP service initiates the connection starting HSP/HFP connection, instead just start timer when HSP/HFP is not connected, also move order so that setting HSP/HFP connection timer is not blocked by AVRCP connection. The previous patch also did not get HSP service if HFP is not available. This patch adds it in. Yao Wei (魏銘廷) 9 months ago 1 file, +8, -10
1288facd doc: Fix various typos in D-Bus interface documentation Arkadiusz Bokowy 9 months ago 11 files, +17, -18
9f167d49 bap: don't consider TX timestamps as errors Use io_add_err_watch to avoid considering TX timestamps as errors in the transport io channel. Pauli Virtanen 9 months ago 2 files, +10, -14
0e831d8e avdtp: don't consider TX timestamps as errors Use io_add_err_watch to avoid considering TX timestamps as errors in the transport io channel. Pauli Virtanen 9 months ago 1 file, +3, -6
b19d445b shared/io: add watcher to be used with TX timestamping Add special implementation of fd watcher GSource for audio use. For audio use cases, sound server may turn on TX timestamping on a socket that we are watching. In this case, we shall not consider the TX timestamping POLLERR as a socket error condition, nor read the TX timestamps. When TX timestamps appear in errqueue, switch from fd poll wait to polling the fd at regular intervals. This is because unread errqueue causes poll() to wake up immediately, so the mainloop cannot block on that, and we have to use a timer instead with some reasonable timeout for the use case. This rate limits wakeups on new TX timestamps we aren't going to read, and also avoids the busy looping if timestamping was left on but errqueue is not flushed. Kernel does not provide any way for user applications to disable wakeup on POLLERR currently. Note that even with epoll() POLLET it still wakes up on every timestamp. Implement this only for io-glib; it is only needed for audio use cases that anyway are using glib, so add a glib-specific API for it in addition to the 'struct io *' one. Uses features from GLib 2.36 (from 2013) so update configure.ac also. Pauli Virtanen 9 months ago 6 files, +216, -4
956b277f test-bap: Fix test names This fixes the test names so the are accourding to the testing specification. Luiz Augusto von Dentz 9 months ago 1 file, +56, -56
e367244e test-bap: Introduce USR/STR tests for LC3 Unicast Server Streaming – 1 Stream, 1 CIS – LC3 Test Purpose: Verify that a Unicast Server IUT can stream LC3-encoded audio data over one unicast Audio Stream to/from a Unicast Client. Pass verdict: If the IUT is in the Audio Source role, the IUT sends SDUs with a zero or more length, using the LC3 Media Packet format (defined in [3] Section 4.2). If the IUT is in the Audio Sink role, the IUT receives SDUs with a zero or more length, using the LC3 Media Packet format (defined in [3] Section 4.2) Test Summary ------------ BAP/USR/STR/BV-001-C [USR, AC 2, LC3 8_1_1] Passed BAP/USR/STR/BV-002-C [USR, AC 10, LC3 8_1_1] Passed BAP/USR/STR/BV-003-C [USR, AC 2, LC3 8_2_1] Passed BAP/USR/STR/BV-004-C [USR, AC 10, LC3 8_2_1] Passed BAP/USR/STR/BV-005-C [USR, AC 2, LC3 16_1_1] Passed BAP/USR/STR/BV-006-C [USR, AC 10, LC3 16_1_1] Passed BAP/USR/STR/BV-007-C [USR, AC 2, LC3 16_2_1] Passed BAP/USR/STR/BV-008-C [USR, AC 10, LC3 16_2_1] Passed BAP/USR/STR/BV-009-C [USR, AC 2, LC3 24_1_1] Passed BAP/USR/STR/BV-010-C [USR, AC 10, LC3 24_1_1] Passed BAP/USR/STR/BV-011-C [USR, AC 2, LC3 24_2_1] Passed BAP/USR/STR/BV-012-C [USR, AC 10, LC3 24_2_1] Passed BAP/USR/STR/BV-013-C [USR, AC 2, LC3 32_1_1] Passed BAP/USR/STR/BV-014-C [USR, AC 10, LC3 32_1_1] Passed BAP/USR/STR/BV-015-C [USR, AC 2, LC3 32_2_1] Passed BAP/USR/STR/BV-016-C [USR, AC 10, LC3 32_2_1] Passed BAP/USR/STR/BV-017-C [USR, AC 2, LC3 441_1_1] Passed BAP/USR/STR/BV-018-C [USR, AC 10, LC3 441_1_1] Passed BAP/USR/STR/BV-019-C [USR, AC 2, LC3 44_2_1] Passed BAP/USR/STR/BV-020-C [USR, AC 10, LC3 44_2_1] Passed BAP/USR/STR/BV-021-C [USR, AC 2, LC3 48_1_1] Passed BAP/USR/STR/BV-022-C [USR, AC 10, LC3 48_1_1] Passed BAP/USR/STR/BV-023-C [USR, AC 2, LC3 48_2_1] Passed BAP/USR/STR/BV-024-C [USR, AC 10, LC3 48_2_1] Passed BAP/USR/STR/BV-025-C [USR, AC 2, LC3 48_3_1] Passed BAP/USR/STR/BV-026-C [USR, AC 10, LC3 48_3_1] Passed BAP/USR/STR/BV-027-C [USR, AC 2, LC3 48_4_1] Passed BAP/USR/STR/BV-028-C [USR, AC 10, LC3 48_4_1] Passed BAP/USR/STR/BV-029-C [USR, AC 2, LC3 48_5_1] Passed BAP/USR/STR/BV-030-C [USR, AC 10, LC3 48_5_1] Passed BAP/USR/STR/BV-031-C [USR, AC 2, LC3 48_6_1] Passed BAP/USR/STR/BV-032-C [USR, AC 10, LC3 48_6_1] Passed BAP/USR/STR/BV-033-C [USR, SRC, AC 1, LC3 8_1_1] Passed BAP/USR/STR/BV-034-C [USR, SRC, AC 4, LC3 8_1_1] Passed BAP/USR/STR/BV-035-C [USR, SRC, AC 1, LC3 8_2_1] Passed BAP/USR/STR/BV-036-C [USR, SRC, AC 4, LC3 8_2_1] Passed BAP/USR/STR/BV-037-C [USR, SRC, AC 1, LC3 16_1_1] Passed BAP/USR/STR/BV-038-C [USR, SRC, AC 4, LC3 16_1_1] Passed BAP/USR/STR/BV-039-C [USR, SRC, AC 1, LC3 16_2_1] Passed BAP/USR/STR/BV-040-C [USR, SRC, AC 4, LC3 16_2_1] Passed BAP/USR/STR/BV-041-C [USR, SRC, AC 1, LC3 24_1_1] Passed BAP/USR/STR/BV-042-C [USR, SRC, AC 4, LC3 24_1_1] Passed BAP/USR/STR/BV-043-C [USR, SRC, AC 1, LC3 24_2_1] Passed BAP/USR/STR/BV-044-C [USR, SRC, AC 4, LC3 24_2_1] Passed BAP/USR/STR/BV-045-C [USR, SRC, AC 1, LC3 32_1_1] Passed BAP/USR/STR/BV-046-C [USR, SRC, AC 4, LC3 32_1_1] Passed BAP/USR/STR/BV-047-C [USR, SRC, AC 1, LC3 32_2_1] Passed BAP/USR/STR/BV-048-C [USR, SRC, AC 4, LC3 32_2_1] Passed BAP/USR/STR/BV-049-C [USR, SRC, AC 1, LC3 44_1_1] Passed BAP/USR/STR/BV-050-C [USR, SRC, AC 4, LC3 44_1_1] Passed BAP/USR/STR/BV-051-C [USR, SRC, AC 1, LC3 44_2_1] Passed BAP/USR/STR/BV-052-C [USR, SRC, AC 4, LC3 44_2_1] Passed BAP/USR/STR/BV-053-C [USR, SRC, AC 1, LC3 48_1_1] Passed BAP/USR/STR/BV-054-C [USR, SRC, AC 4, LC3 48_1_1] Passed BAP/USR/STR/BV-055-C [USR, SRC, AC 1, LC3 48_2_1] Passed BAP/USR/STR/BV-056-C [USR, SRC, AC 4, LC3 48_2_1] Passed BAP/USR/STR/BV-057-C [USR, SRC, AC 1, LC3 48_3_1] Passed BAP/USR/STR/BV-058-C [USR, SRC, AC 4, LC3 48_3_1] Passed BAP/USR/STR/BV-059-C [USR, SRC, AC 1, LC3 48_4_1] Passed BAP/USR/STR/BV-060-C [USR, SRC, AC 4, LC3 48_4_1] Passed BAP/USR/STR/BV-061-C [USR, SRC, AC 1, LC3 48_5_1] Passed BAP/USR/STR/BV-062-C [USR, SRC, AC 4, LC3 48_5_1] Passed BAP/USR/STR/BV-063-C [USR, SRC, AC 1, LC3 48_6_1] Passed BAP/USR/STR/BV-064-C [USR, SRC, AC 4, LC3 48_6_1] Passed BAP/USR/STR/BV-065-C [USR, AC 2, LC3 8_1_2] Passed BAP/USR/STR/BV-066-C [USR, AC 10, LC3 8_1_2] Passed BAP/USR/STR/BV-067-C [USR, AC 2, LC3 8_2_2] Passed BAP/USR/STR/BV-068-C [USR, AC 10, LC3 8_2_2] Passed BAP/USR/STR/BV-069-C [USR, AC 2, LC3 16_1_2] Passed BAP/USR/STR/BV-070-C [USR, AC 10, LC3 16_1_2] Passed BAP/USR/STR/BV-071-C [USR, AC 2, LC3 16_2_2] Passed BAP/USR/STR/BV-072-C [USR, AC 10, LC3 16_2_2] Passed BAP/USR/STR/BV-073-C [USR, AC 2, LC3 24_1_2] Passed BAP/USR/STR/BV-074-C [USR, AC 10, LC3 24_1_2] Passed BAP/USR/STR/BV-075-C [USR, AC 2, LC3 24_2_2] Passed BAP/USR/STR/BV-076-C [USR, AC 10, LC3 24_2_2] Passed BAP/USR/STR/BV-077-C [USR, AC 2, LC3 32_1_2] Passed BAP/USR/STR/BV-078-C [USR, AC 10, LC3 32_1_2] Passed BAP/USR/STR/BV-079-C [USR, AC 2, LC3 32_2_2] Passed BAP/USR/STR/BV-080-C [USR, AC 10, LC3 32_2_2] Passed BAP/USR/STR/BV-081-C [USR, AC 2, LC3 44_1_2] Passed BAP/USR/STR/BV-082-C [USR, AC 10, LC3 44_1_2] Passed BAP/USR/STR/BV-083-C [USR, AC 2, LC3 44_2_2] Passed BAP/USR/STR/BV-084-C [USR, AC 10, LC3 44_2_2] Passed BAP/USR/STR/BV-085-C [USR, AC 2, LC3 48_1_2] Passed BAP/USR/STR/BV-086-C [USR, AC 10, LC3 48_1_2] Passed BAP/USR/STR/BV-087-C [USR, AC 2, LC3 48_2_2] Passed BAP/USR/STR/BV-088-C [USR, AC 10, LC3 48_2_2] Passed BAP/USR/STR/BV-089-C [USR, AC 2, LC3 48_3_2] Passed BAP/USR/STR/BV-090-C [USR, AC 10, LC3 48_3_2] Passed BAP/USR/STR/BV-091-C [USR, AC 2, LC3 48_4_2] Passed BAP/USR/STR/BV-092-C [USR, AC 10, LC3 48_4_2] Passed BAP/USR/STR/BV-093-C [USR, AC 2, LC3 48_5_2] Passed BAP/USR/STR/BV-094-C [USR, AC 10, LC3 48_5_2] Passed BAP/USR/STR/BV-095-C [USR, AC 2, LC3 48_6_2] Passed BAP/USR/STR/BV-096-C [USR, AC 10, LC3 48_6_2] Passed BAP/USR/STR/BV-097-C [USR, SRC, AC 1, LC3 8_1_2] Passed BAP/USR/STR/BV-098-C [USR, SRC, AC 4, LC3 8_1_2] Passed BAP/USR/STR/BV-099-C [USR, SRC, AC 1, LC3 8_2_2] Passed BAP/USR/STR/BV-100-C [USR, SRC, AC 4, LC3 8_2_2] Passed BAP/USR/STR/BV-101-C [USR, SRC, AC 1, LC3 16_1_2] Passed BAP/USR/STR/BV-102-C [USR, SRC, AC 4, LC3 16_1_2] Passed BAP/USR/STR/BV-103-C [USR, SRC, AC 1, LC3 16_2_2] Passed BAP/USR/STR/BV-104-C [USR, SRC, AC 4, LC3 16_2_2] Passed BAP/USR/STR/BV-105-C [USR, SRC, AC 1, LC3 24_1_2] Passed BAP/USR/STR/BV-106-C [USR, SRC, AC 4, LC3 24_1_2] Passed BAP/USR/STR/BV-107-C [USR, SRC, AC 1, LC3 24_2_2] Passed BAP/USR/STR/BV-108-C [USR, SRC, AC 4, LC3 24_2_2] Passed BAP/USR/STR/BV-109-C [USR, SRC, AC 1, LC3 32_1_2] Passed BAP/USR/STR/BV-110-C [USR, SRC, AC 4, LC3 32_1_2] Passed BAP/USR/STR/BV-111-C [USR, SRC, AC 1, LC3 32_2_2] Passed BAP/USR/STR/BV-112-C [USR, SRC, AC 4, LC3 32_2_2] Passed BAP/USR/STR/BV-113-C [USR, SRC, AC 1, LC3 44_1_2] Passed BAP/USR/STR/BV-114-C [USR, SRC, AC 4, LC3 44_1_2] Passed BAP/USR/STR/BV-115-C [USR, SRC, AC 1, LC3 44_2_2] Passed BAP/USR/STR/BV-116-C [USR, SRC, AC 4, LC3 44_2_2] Passed BAP/USR/STR/BV-117-C [USR, SRC, AC 1, LC3 48_1_2] Passed BAP/USR/STR/BV-118-C [USR, SRC, AC 4, LC3 48_1_2] Passed BAP/USR/STR/BV-119-C [USR, SRC, AC 1, LC3 48_2_2] Passed BAP/USR/STR/BV-120-C [USR, SRC, AC 4, LC3 48_2_2] Passed BAP/USR/STR/BV-121-C [USR, SRC, AC 1, LC3 48_3_2] Passed BAP/USR/STR/BV-122-C [USR, SRC, AC 4, LC3 48_3_2] Passed BAP/USR/STR/BV-123-C [USR, SRC, AC 1, LC3 48_4_2] Passed BAP/USR/STR/BV-124-C [USR, SRC, AC 4, LC3 48_4_2] Passed BAP/USR/STR/BV-121-C [USR, SRC, AC 1, LC3 48_5_2] Passed BAP/USR/STR/BV-122-C [USR, SRC, AC 4, LC3 48_5_2] Passed BAP/USR/STR/BV-123-C [USR, SRC, AC 1, LC3 48_6_2] Passed BAP/USR/STR/BV-124-C [USR, SRC, AC 4, LC3 48_6_2] Passed Total: 128, Passed: 128 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +429, -11
ed9fb8ae shared/tester: Fix not detecting NULL packets When receiving packets if the iovec is NULL it means it shall be skipped. Luiz Augusto von Dentz 9 months ago 1 file, +3, -0
713655c1 shared/bap: Fix notifying with the wrong state stream_notify_metadata is reused by a couple of states so it needs to pass on the actual state to be notified rather than using ep->state which may have been transitioned already. Luiz Augusto von Dentz 9 months ago 1 file, +3, -3
7d4fc802 test-bap: Introduce USR/SCC Metadata tests for LC3 Unicast Server Performs Update Metadata Operation Test Purpose: Verify that a Unicast Server IUT can perform an Update Metadata operation initiated by a Unicast Client. Pass verdict: The IUT sends a notification of the ASE Control Point characteristic with Response_Code set to Success (0x00) for the requested ASE_ID and opcode. Test Summary ------------ BAP/USR/SCC/BV-161-C [USR SRC Update Metadata in Enabling State] Passed BAP/USR/SCC/BV-162-C [USR SNK Update Metadata in Enabling or Streaming state] Passed BAP/USR/SCC/BV-163-C [USR SRC Update Metadata in Streaming State] Passed Total: 3, Passed: 3 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +44, -12
ae5fe4aa shared/bap: Fix not sending ASE Notication in case of Metadata update Tests such if metadata update requires the server to generate ASE notification on Update Metadata operation. Luiz Augusto von Dentz 9 months ago 1 file, +3, -0
da110920 test-bap: Introduce USR/SCC Release tests for LC3 Unicast Server Performs Client-Initiated Release Operation Test Purpose: Verify the behavior of a Unicast Server IUT when a Unicast Client initiates a Release operation. Pass verdict: The IUT sends a notification of the ASE Control Point characteristic value. Test Summary ------------ BAP/USR/SCC/BV-143-C [USR SRC Release in Codec Configured state] Passed BAP/USR/SCC/BV-144-C [USR SNK Release in Codec Configured state] Passed BAP/USR/SCC/BV-145-C [USR SRC Release in QoS Configured state] Passed BAP/USR/SCC/BV-146-C [USR SNK Release in QoS Configured state] Passed BAP/USR/SCC/BV-147-C [USR SRC Release in Enabling state] Passed BAP/USR/SCC/BV-148-C [USR SNK Release in Enabling or Streaming state] Passed BAP/USR/SCC/BV-149-C [USR SRC Release in Streaming state] Passed BAP/USR/SCC/BV-150-C [USR SRC Release in Disabling state] Passed Total: 8, Passed: 8 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +49, -7
15fd57f2 shared/bap: Fix not notifying idle state The idle state must be notified like any other state. Luiz Augusto von Dentz 9 months ago 1 file, +16, -0
dfebcc9c shared/bap: Fix not always sending Releasing state In order for states to be sent the stream cannot be freed since pending_states could be pending due to be processing a CP operation, so this attempts to grap a reference to the stream so it is not freed while states are pending. Luiz Augusto von Dentz 9 months ago 1 file, +16, -16
88cacb8f test-bap: Introduce USR/SCC Enable tests for LC3 Unicast Server Performs Client-Initiated Disable Operation Test Purpose: Verify that a Unicast Server IUT can perform a client-initiated Disable operation for an ASE in the Enabling or Streaming state. Pass verdict: The IUT sends a notification of the ASE Control Point characteristic. Test Summary ------------ BAP/USR/SCC/BV-137-C [USR SRC Disable in Enabling State] Passed BAP/USR/SCC/BV-138-C [USR SNK Disable in Enabling or Streaming state] Passed BAP/USR/SCC/BV-139-C [USR SRC Disable in Streaming State] Passed Total: 3, Passed: 3 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +34, -6
f2e71754 test-bap: Introduce USR/SCC Enable tests for LC3 Unicast Server Performs Client-Initiated Enable Operation Test Purpose: Verify that a Unicast Server IUT can handle a client-initiated Enable operation for an ASE with a Unicast Client that is either in the Audio Sink role or the Audio Source role. Pass verdict: The IUT sends a notification of the ASE Control Point characteristic with Response_Code set to 0x00 (Success) for the requested ASE_ID and opcode. Test Summary ------------ BAP/USR/SCC/BV-135-C [USR SNK Enable] Passed BAP/USR/SCC/BV-136-C [UCL SRC Enable] Passed Total: 2, Passed: 2 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +29, -2
fd454906 test-bap: Introduce USR/SCC QoS tests for VS Unicast Server Performs Config QoS – Vendor-Specific Test Purpose: Verify that a Unicast Server IUT can handle a Config QoS operation for a vendor-specific codec. Pass verdict: The IUT sends a notification of the ASE Control Point characteristic with Response_Code set to Success (0x00) for the requested ASE_ID and opcode Test Summary ------------ BAP/USR/SCC/BV-133-C [USR SNK Config QoS, VS] Passed BAP/USR/SCC/BV-134-C [USR SRC Config QoS, VS] Passed Total: 2, Passed: 2 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +29, -3
8890cd71 test-bap: Introduce USR/SCC QoS tests for LC3 Unicast Server Performs Config QoS – LC3 Test Purpose: Verify that a Unicast Server IUT can perform a Config QoS operation initiated by a Unicast Client for the LC3 codec. Pass verdict: In step 2, the IUT sends a notification of the ASE Control Point characteristic with Response_Code set to Success (0x00) for the requested ASE_ID and opcode. In step 3, the notified ASE characteristic value is correctly formatted, has the ASE_ID field set to Test_ASE_ID, the ASE_State field set to 0x02 (QoS Configured), and the Additional_ASE_Parameters field containing the CIG_ID, CIS_ID, and QoS configuration values requested in step 2. Test Summary ------------ BAP/USR/SCC/BV-069-C [USR SNK Config QoS, LC3 8_1_1] Passed BAP/USR/SCC/BV-070-C [USR SNK Config QoS, LC3 8_2_1] Passed BAP/USR/SCC/BV-071-C [USR SNK Config QoS, LC3 16_1_1] Passed BAP/USR/SCC/BV-072-C [USR SNK Config QoS, LC3 16_2_1] Passed BAP/USR/SCC/BV-073-C [USR SNK Config QoS, LC3 24_1_1] Passed BAP/USR/SCC/BV-074-C [USR SNK Config QoS, LC3 24_2_1] Passed BAP/USR/SCC/BV-075-C [USR SNK Config QoS, LC3 32_1_1] Passed BAP/USR/SCC/BV-076-C [USR SNK Config QoS, LC3 32_2_1] Passed BAP/USR/SCC/BV-077-C [USR SNK Config QoS, LC3 44.1_1_1] Passed BAP/USR/SCC/BV-078-C [USR SNK Config QoS, LC3 44.1_2_1] Passed BAP/USR/SCC/BV-079-C [USR SNK Config QoS, LC3 48_1_1] Passed BAP/USR/SCC/BV-080-C [USR SNK Config QoS, LC3 48_2_1] Passed BAP/USR/SCC/BV-081-C [USR SNK Config QoS, LC3 48_3_1] Passed BAP/USR/SCC/BV-082-C [USR SNK Config QoS, LC3 48_4_1] Passed BAP/USR/SCC/BV-083-C [USR SNK Config QoS, LC3 48_5_1] Passed BAP/USR/SCC/BV-084-C [USR SNK Config QoS, LC3 48_6_1] Passed BAP/USR/SCC/BV-085-C [USR SRC Config QoS, LC3 8_1_1] Passed BAP/USR/SCC/BV-086-C [USR SRC Config QoS, LC3 8_2_1] Passed BAP/USR/SCC/BV-087-C [USR SRC Config QoS, LC3 16_1_1] Passed BAP/USR/SCC/BV-088-C [USR SRC Config QoS, LC3 16_2_1] Passed BAP/USR/SCC/BV-089-C [USR SRC Config QoS, LC3 24_1_1] Passed BAP/USR/SCC/BV-090-C [USR SRC Config QoS, LC3 24_2_1] Passed BAP/USR/SCC/BV-091-C [USR SRC Config QoS, LC3 32_1_1] Passed BAP/USR/SCC/BV-092-C [USR SRC Config QoS, LC3 32_2_1] Passed BAP/USR/SCC/BV-093-C [USR SRC Config QoS, LC3 44.1_1_1] Passed BAP/USR/SCC/BV-094-C [USR SRC Config QoS, LC3 44.1_2_1] Passed BAP/USR/SCC/BV-095-C [USR SRC Config QoS, LC3 48_1_1] Passed BAP/USR/SCC/BV-096-C [USR SRC Config QoS, LC3 48_2_1] Passed BAP/USR/SCC/BV-097-C [USR SRC Config QoS, LC3 48_3_1] Passed BAP/USR/SCC/BV-098-C [USR SRC Config QoS, LC3 48_4_1] Passed BAP/USR/SCC/BV-099-C [USR SRC Config QoS, LC3 48_5_1] Passed BAP/USR/SCC/BV-100-C [USR SRC Config QoS, LC3 48_6_1] Passed BAP/USR/SCC/BV-101-C [USR SNK Config QoS, LC3 8_1_2] Passed BAP/USR/SCC/BV-102-C [USR SNK Config QoS, LC3 8_2_2] Passed BAP/USR/SCC/BV-103-C [USR SNK Config QoS, LC3 16_1_2] Passed BAP/USR/SCC/BV-104-C [USR SNK Config QoS, LC3 16_2_2] Passed BAP/USR/SCC/BV-105-C [USR SNK Config QoS, LC3 24_1_2] Passed BAP/USR/SCC/BV-106-C [USR SNK Config QoS, LC3 24_2_2] Passed BAP/USR/SCC/BV-107-C [USR SNK Config QoS, LC3 32_1_2] Passed BAP/USR/SCC/BV-108-C [USR SNK Config QoS, LC3 32_2_2] Passed BAP/USR/SCC/BV-109-C [USR SNK Config QoS, LC3 44.1_1_2] Passed BAP/USR/SCC/BV-110-C [USR SNK Config QoS, LC3 44.1_2_2] Passed BAP/USR/SCC/BV-111-C [USR SNK Config QoS, LC3 48_1_2] Passed BAP/USR/SCC/BV-112-C [USR SNK Config QoS, LC3 48_2_2] Passed BAP/USR/SCC/BV-113-C [USR SNK Config QoS, LC3 48_3_2] Passed BAP/USR/SCC/BV-114-C [USR SNK Config QoS, LC3 48_4_2] Passed BAP/USR/SCC/BV-115-C [USR SNK Config QoS, LC3 48_5_2] Passed BAP/USR/SCC/BV-116-C [USR SNK Config QoS, LC3 48_6_2] Passed BAP/USR/SCC/BV-117-C [USR SRC Config QoS, LC3 8_1_2] Passed BAP/USR/SCC/BV-118-C [USR SRC Config QoS, LC3 8_2_2] Passed BAP/USR/SCC/BV-119-C [USR SRC Config QoS, LC3 16_1_2] Passed BAP/USR/SCC/BV-120-C [USR SRC Config QoS, LC3 16_2_2] Passed BAP/USR/SCC/BV-121-C [USR SRC Config QoS, LC3 24_1_2] Passed BAP/USR/SCC/BV-122-C [USR SRC Config QoS, LC3 24_2_2] Passed BAP/USR/SCC/BV-123-C [USR SRC Config QoS, LC3 32_1_2] Passed BAP/USR/SCC/BV-124-C [USR SRC Config QoS, LC3 32_2_2] Passed BAP/USR/SCC/BV-125-C [USR SRC Config QoS, LC3 44.1_1_2] Passed BAP/USR/SCC/BV-126-C [USR SRC Config QoS, LC3 44.1_2_2] Passed BAP/USR/SCC/BV-127-C [USR SRC Config QoS, LC3 48_1_2] Passed BAP/USR/SCC/BV-128-C [USR SRC Config QoS, LC3 48_2_2] Passed BAP/USR/SCC/BV-129-C [USR SRC Config QoS, LC3 48_3_2] Passed BAP/USR/SCC/BV-130-C [USR SRC Config QoS, LC3 48_4_2] Passed BAP/USR/SCC/BV-131-C [USR SRC Config QoS, LC3 48_5_2] Passed BAP/USR/SCC/BV-132-C [USR SRC Config QoS, LC3 48_6_2] Passed Total: 64, Passed: 64 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +219, -2
7a3be199 test-bap: Introduce USR/SCC - VS tests for LC3 BAP/USR/SCC/BV-033-C [USR SNK Config Codec, VS] Test Purpose: Verify that a Unicast Server Audio Sink IUT can perform a Config Codec operation initiated by a Unicast Client for a vendor-specific codec for an ASE in the Idle state, the Codec Configured state, and the QoS Configured state. Pass verdict: The IUT sends a notification of the ASE Control Point characteristic with the Response_Code field set to 0x00 (Success) for the requested ASE_ID and opcode. Test Summary ------------ BAP/USR/SCC/BV-033-C [USR SNK Config Codec, VS] Passed BAP/USR/SCC/BV-034-C [USR SRC Config Codec, VS] Passed Total: 2, Passed: 2 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +62, -7
9d613892 test-bap: Introduce USR/SCC tests for LC3 4.9.1 Unicast Server as Audio Sink Performs Config Codec – LC3 Test Purpose: Verify that a Unicast Server Audio Sink IUT can perform a Config Codec operation initiated by a Unicast Client for an ASE in the Idle state, the Codec Configured state. Pass Veridict: The IUT sends a Response_Code of 0x00 (Success) in response to each Config Codec operation. 4.9.2 Unicast Server as Audio Source Performs Config Codec – LC3 Test Purpose: Verify that a Unicast Server Audio Source IUT can perform a Config Codec operation initiated by a Unicast Client for an ASE in the Idle state, the Codec Configured state. Pass verdict: The IUT sends a Response_Code of 0x00 (Success) in response to each Config Codec operation. Test Summary ------------ BAP/USR/SCC/BV-001-C [USR SNK Config Codec, LC3 8_1] Passed BAP/USR/SCC/BV-002-C [USR SNK Config Codec, LC3 8_2] Passed BAP/USR/SCC/BV-003-C [USR SNK Config Codec, LC3 16_1] Passed BAP/USR/SCC/BV-004-C [USR SNK Config Codec, LC3 16_2] Passed BAP/USR/SCC/BV-005-C [USR SNK Config Codec, LC3 24_1] Passed BAP/USR/SCC/BV-006-C [USR SNK Config Codec, LC3 24_2] Passed BAP/USR/SCC/BV-007-C [USR SNK Config Codec, LC3 32_1] Passed BAP/USR/SCC/BV-008-C [USR SNK Config Codec, LC3 32_2] Passed BAP/USR/SCC/BV-009-C [USR SNK Config Codec, LC3 44.1_1] Passed BAP/USR/SCC/BV-010-C [USR SNK Config Codec, LC3 44.1_2] Passed BAP/USR/SCC/BV-011-C [USR SNK Config Codec, LC3 48_1] Passed BAP/USR/SCC/BV-012-C [USR SNK Config Codec, LC3 48_2] Passed BAP/USR/SCC/BV-013-C [USR SNK Config Codec, LC3 48_3] Passed BAP/USR/SCC/BV-014-C [USR SNK Config Codec, LC3 48_4] Passed BAP/USR/SCC/BV-015-C [USR SNK Config Codec, LC3 48_5] Passed BAP/USR/SCC/BV-016-C [USR SNK Config Codec, LC3 48_6] Passed BAP/USR/SCC/BV-017-C [USR SRC Config Codec, LC3 8_1] Passed BAP/USR/SCC/BV-018-C [USR SRC Config Codec, LC3 8_2] Passed BAP/USR/SCC/BV-019-C [USR SRC Config Codec, LC3 16_1] Passed BAP/USR/SCC/BV-020-C [USR SRC Config Codec, LC3 16_2] Passed BAP/USR/SCC/BV-021-C [USR SRC Config Codec, LC3 24_1] Passed BAP/USR/SCC/BV-022-C [USR SRC Config Codec, LC3 24_2] Passed BAP/USR/SCC/BV-023-C [USR SRC Config Codec, LC3 32_1] Passed BAP/USR/SCC/BV-024-C [USR SRC Config Codec, LC3 32_2] Passed BAP/USR/SCC/BV-025-C [USR SRC Config Codec, LC3 44.1_1] Passed BAP/USR/SCC/BV-026-C [USR SRC Config Codec, LC3 44.1_2] Passed BAP/USR/SCC/BV-027-C [USR SRC Config Codec, LC3 48_1] Passed BAP/USR/SCC/BV-028-C [USR SRC Config Codec, LC3 48_2] Passed BAP/USR/SCC/BV-029-C [USR SRC Config Codec, LC3 48_3] Passed BAP/USR/SCC/BV-030-C [USR SRC Config Codec, LC3 48_4] Passed BAP/USR/SCC/BV-031-C [USR SRC Config Codec, LC3 48_5] Passed BAP/USR/SCC/BV-032-C [USR SRC Config Codec, LC3 48_6] Passed Total: 32, Passed: 32 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 1 file, +202, -32
ad5f318c test-bap: Introduce DISC tests for LC3 4.7.2 Unicast Server – Audio Capability Exposure (Page 32): Test Purpose Verify that a Unicast Server IUT can allow audio capability discovery with an Audio Sink reading the values of the Sink PAC characteristic and the Sink Audio Locations characteristic on the IUT, or with an Audio Source reading the values of the Source PAC characteristic and the Source Audio Locations characteristic on the IUT. Test Summary ------------ BAP/USR/DISC/BV-01-C Passed BAP/USR/DISC/BV-02-C Passed BAP/USR/DISC/BV-06-C Passed BAP/USR/DISC/BV-07-C Passed BAP/USR/DISC/BV-03-C Passed BAP/USR/DISC/BV-04-C Passed BAP/USR/DISC/BV-05-C Passed Total: 7, Passed: 7 (100.0%), Failed: 0, Not Run: 0 Luiz Augusto von Dentz 9 months ago 2 files, +299, -50
0efa20cb Release 5.82 Marcel Holtmann 9 months ago 2 files, +5, -1
6d20a300 shared/bap: Fix swallowing states transitions In certain cases (e.g ASCS_Enable) a Control Point operation may change states multiple times causing states not to be notified. To fix this attempts to queue states if timeout is pending (state_id) and then proceed to notify them ahead of the last state set in the ASE so the remote side is informed of all the state transitions. Luiz Augusto von Dentz 9 months ago 1 file, +28, -11
da5846c0 dbus: Fix condition for invalidating path This fixes the condition introduced in cdd02afbb7ef ("dbus: Fix add invalid memory during interface removal") which was reversed while applying the original fix. Fixes: https://github.com/bluez/bluez/issues/1155 Luiz Augusto von Dentz 9 months ago 1 file, +1, -1
47e5d349 Release 5.81 Marcel Holtmann 9 months ago 2 files, +9, -1
cdd02afb dbus: Fix add invalid memory during interface removal test setp register_service <uuid> register_application <uuid> unregister_service <uuid> unregister_application register_service <uuid> register_application <uuid> core dump invalidate_parent_data is called to add the service to the application's glist when unregister_service. However, this service has already been added to the glist of root object in register_service. This results in services existing in both queues,but only the services in the application's glist are freed upon removal. A null address is stored in root object's glist, a crash dump will occur when get_object is called. Add a check for the parent pointer to avoid adding the service again. 0 0x0000007ff7df6058 in dbus_message_iter_append_basic () from /usr/lib/libdbus-1.so.3 1 0x00000055555a3780 in append_object (data=0x31306666, user_data=0x7ffffff760) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1117 2 0x0000007ff7ece0cc in g_slist_foreach () from /usr/lib/libglib-2.0.so.0 3 0x00000055555a37ac in append_object (data=0x5555642cf0, user_data=0x7ffffff760) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1122 4 0x0000007ff7ece0cc in g_slist_foreach () from /usr/lib/libglib-2.0.so.0 5 0x00000055555a3630 in get_objects (connection=<optimized out>, message=<optimized out>, user_data=0x555563b390) at /usr/src/debug/bluez5/5.72/gdbus/object.c:1154 6 0x00000055555a51d0 in process_message ( connection=connection@entry=0x5555639310, message=message@entry=0x5555649ac0, method=method@entry=0x55555facf8 <manager_methods>, iface_user_data=<optimized out>) at /usr/src/debug/bluez5/5.72/gdbus/object.c:246 7 0x00000055555a575c in generic_message (connection=0x5555639310, message=0x5555649ac0, user_data=<optimized out>) Shuai Zhang 9 months ago 1 file, +3, -0
d9430c06 client/player: Add support for setting BIS ID This adds support for setting BIS ID in addition to BIG ID: [/local/endpoint/ep0] BIG (auto/value): 1 [/local/endpoint/ep0] BIS (auto/value): Luiz Augusto von Dentz 9 months ago 2 files, +28, -3
78aabd89 a2dp: Fix removing local cache on restart Endpoint cache shall only be removed when the device is being removed not when just because the service is being removed since that is also done when bluetoothd is being restarted. Fixes: https://github.com/bluez/bluez/issues/1146 Luiz Augusto von Dentz 9 months ago 2 files, +1, -40
5bbefdcc shared/att: Fix not always setting security for BT_ATT_LOCAL Channels created with BT_ATT_LOCAL (socket pair) shall not be restricted from downgrading the security level since its default security level is BT_ATT_SECURITY_LOW and it may need to be switched to BT_ATT_SECURITY_AUTO. Luiz Augusto von Dentz 9 months ago 1 file, +5, -5
8ebb0ff1 doc: Add initial SCO(7) documentation This adds initial documentation for SCO sockets. Luiz Augusto von Dentz 9 months ago 2 files, +263, -3
5df9521c device: Elevate bt_att security if bonding is in progress When bonding is in progress it means Device.Pair has been called thus the user indicated the intend to pair/bond from the start so the security of bt_att shall be set in order for it to wait until pairing process complete before attempting to proceed with GATT discovery and any other traffic. Fixes: https://github.com/bluez/bluez/issues/1125 Luiz Augusto von Dentz 9 months ago 1 file, +5, -0
ac1f8dd8 shared/att: Make bt_att_set_security never downgrade security level Requesting a lower security level than existing one shall result in no operation since higher security satisfy a lower one and it is never a good practice to allow downgrading security to begin with. Luiz Augusto von Dentz 9 months ago 1 file, +5, -1
45b61a10 device: Use btd_device_is_initiator instead of Connect message Device.Connect message is not the only way to initiate a connection as there is also the likes of Device.Pair which will initiate bonding, so this incorporate the bonding check into btd_device_is_initiator and replaces the checks of were Connect message was used to determine if initiator to use btd_device_is_initiator. Luiz Augusto von Dentz 9 months ago 1 file, +6, -3
1c2ec299 device: Make Connect and Pair mutually exclusive This makes Device.Connect and Device.Pair methods mutually exclusive so they cannot happen in parallel, so just as Connect:Connect and Pair:Pair combinations the Connect:Pair and Pair:Connect will now return org.bluez.Error.InProgress. Luiz Augusto von Dentz 9 months ago 1 file, +7, -1
Previous Next