2022-08-30 22:21:48

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ] media: Fix registering PAC endpoints if ISO socket are not supported

From: Luiz Augusto von Dentz <[email protected]>

If adapter don't support ISO sockets the PAC UUIDs shall not be allowed
to be registered as they depend on ISO sockets to work properly.
---
profiles/audio/media.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/profiles/audio/media.c b/profiles/audio/media.c
index 85278a6d9be4..a7fa85d60310 100644
--- a/profiles/audio/media.c
+++ b/profiles/audio/media.c
@@ -1254,20 +1254,23 @@ static bool endpoint_properties_get(const char *uuid,
return true;
}

-static bool endpoint_supported(void)
+static bool endpoint_supported(struct btd_adapter *adapter)
{
return true;
}

-static bool experimental_endpoint_supported(void)
+static bool experimental_endpoint_supported(struct btd_adapter *adapter)
{
+ if (!btd_adapter_has_exp_feature(adapter, EXP_FEAT_ISO_SOCKET))
+ return false;
+
return g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL;
}

static struct media_endpoint_init {
const char *uuid;
bool (*func)(struct media_endpoint *endpoint, int *err);
- bool (*supported)(void);
+ bool (*supported)(struct btd_adapter *adapter);
} init_table[] = {
{ A2DP_SOURCE_UUID, endpoint_init_a2dp_source, endpoint_supported },
{ A2DP_SINK_UUID, endpoint_init_a2dp_sink, endpoint_supported },
@@ -1315,6 +1318,9 @@ media_endpoint_create(struct media_adapter *adapter,
for (i = 0; i < ARRAY_SIZE(init_table); i++) {
init = &init_table[i];

+ if (!init->supported(adapter->btd_adapter))
+ continue;
+
if (!strcasecmp(init->uuid, uuid)) {
succeeded = init->func(endpoint, err);
break;
@@ -2971,6 +2977,7 @@ static const GDBusMethodTable media_methods[] = {
static gboolean supported_uuids(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
+ struct media_adapter *adapter = data;
DBusMessageIter entry;
size_t i;

@@ -2980,7 +2987,7 @@ static gboolean supported_uuids(const GDBusPropertyTable *property,
for (i = 0; i < ARRAY_SIZE(init_table); i++) {
struct media_endpoint_init *init = &init_table[i];

- if (init->supported())
+ if (init->supported(adapter->btd_adapter))
dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING,
&init->uuid);
}
--
2.37.2


2022-08-30 23:07:40

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ] media: Fix registering PAC endpoints if ISO socket are not supported

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=672619

---Test result---

Test Summary:
CheckPatch PASS 1.17 seconds
GitLint PASS 0.80 seconds
Prep - Setup ELL PASS 26.48 seconds
Build - Prep PASS 0.67 seconds
Build - Configure PASS 8.22 seconds
Build - Make PASS 727.87 seconds
Make Check PASS 11.61 seconds
Make Check w/Valgrind PASS 285.48 seconds
Make Distcheck PASS 236.43 seconds
Build w/ext ELL - Configure PASS 8.25 seconds
Build w/ext ELL - Make PASS 82.57 seconds
Incremental Build w/ patches PASS 0.00 seconds
Scan Build WARNING 482.95 seconds

Details
##############################
Test: Scan Build - WARNING
Desc: Run Scan Build with patches
Output:
*****************************************************************************
The bugs reported by the scan-build may or may not be caused by your patches.
Please check the list and fix the bugs if they are caused by your patch.
*****************************************************************************
profiles/audio/media.c:1465:6: warning: 8th function call argument is an uninitialized value
if (media_endpoint_create(adapter, sender, path, uuid, delay_reporting,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
profiles/audio/media.c:3012:3: warning: Use of memory after it is freed
release_endpoint(adapter->endpoints->data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
profiles/audio/media.c:3015:3: warning: Use of memory after it is freed
media_player_destroy(adapter->players->data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.




---
Regards,
Linux Bluetooth

2022-08-31 23:14:22

by patchwork-bot+bluetooth

[permalink] [raw]
Subject: Re: [PATCH BlueZ] media: Fix registering PAC endpoints if ISO socket are not supported

Hello:

This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <[email protected]>:

On Tue, 30 Aug 2022 14:54:44 -0700 you wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> If adapter don't support ISO sockets the PAC UUIDs shall not be allowed
> to be registered as they depend on ISO sockets to work properly.
> ---
> profiles/audio/media.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)

Here is the summary with links:
- [BlueZ] media: Fix registering PAC endpoints if ISO socket are not supported
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=a84aa0e6e5e7

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html