2020-10-16 22:37:14

by Peter Mullen

[permalink] [raw]
Subject: [PATCH BlueZ 2/3] policy: Avoid using UUID if field is not set

---
plugins/policy.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/plugins/policy.c b/plugins/policy.c
index dac1b7a24..e156c0db2 100644
--- a/plugins/policy.c
+++ b/plugins/policy.c
@@ -635,17 +635,19 @@ static void service_cb(struct btd_service *service,
struct btd_profile *profile = btd_service_get_profile(service);
struct reconnect_data *reconnect;
- if (g_str_equal(profile->remote_uuid, A2DP_SINK_UUID))
- sink_cb(service, old_state, new_state);
- else if (g_str_equal(profile->remote_uuid, A2DP_SOURCE_UUID))
- source_cb(service, old_state, new_state);
- else if (g_str_equal(profile->remote_uuid, AVRCP_REMOTE_UUID))
- controller_cb(service, old_state, new_state);
- else if (g_str_equal(profile->remote_uuid, AVRCP_TARGET_UUID))
- target_cb(service, old_state, new_state);
- else if (g_str_equal(profile->remote_uuid, HFP_HS_UUID) ||
- g_str_equal(profile->remote_uuid, HSP_HS_UUID))
- hs_cb(service, old_state, new_state);
+ if (profile->remote_uuid) {
+ if (g_str_equal(profile->remote_uuid, A2DP_SINK_UUID))
+ sink_cb(service, old_state, new_state);
+ else if (g_str_equal(profile->remote_uuid, A2DP_SOURCE_UUID))
+ source_cb(service, old_state, new_state);
+ else if (g_str_equal(profile->remote_uuid, AVRCP_REMOTE_UUID))
+ controller_cb(service, old_state, new_state);
+ else if (g_str_equal(profile->remote_uuid, AVRCP_TARGET_UUID))
+ target_cb(service, old_state, new_state);
+ else if (g_str_equal(profile->remote_uuid, HFP_HS_UUID) ||
+ g_str_equal(profile->remote_uuid, HSP_HS_UUID))
+ hs_cb(service, old_state, new_state);
+ }
/*
* Return if the reconnection feature is not enabled (all
@@ -687,7 +689,7 @@ static void service_cb(struct btd_service *service,
* be the first profile that's connected so we might have an
* entry but with the reconnect flag set to false.
*/
- if (!reconnect->reconnect)
+ if (!reconnect->reconnect && profile->remote_uuid)
reconnect->reconnect = reconnect_match(profile->remote_uuid);
DBG("Added %s reconnect %u", profile->name, reconnect->reconnect);
--
2.28.0