From bd4c2919a9f655ea3679224fb8b6306236346c29 Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Fri, 20 Apr 2018 12:45:05 +0200 Subject: [PATCH] adapter: Fix accessing NULL adv_manager adv_manager might be NULL also if BR/EDR only mdoe is set in main.conf or if btd_adv_manager_new failed so checking for LE in supported settings is not enough. This also makes btd_adv_manager_refresh consistent with other adv_manager API regarding passing NULL manager as function parameter. Change-Id: I5130015896a413de89150d2e669f473e3526c6aa Signed-off-by: Amit Purwar --- src/adapter.c | 3 +-- src/advertising.c | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/adapter.c b/src/adapter.c index 59ce374..dea5f67 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -924,8 +924,7 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings) g_dbus_emit_property_changed(dbus_conn, adapter->path, ADAPTER_INTERFACE, "Discoverable"); store_adapter_info(adapter); - if (adapter->supported_settings & MGMT_SETTING_LE) - btd_adv_manager_refresh(adapter->adv_manager); + btd_adv_manager_refresh(adapter->adv_manager); } if (changed_mask & MGMT_SETTING_BONDABLE) { diff --git a/src/advertising.c b/src/advertising.c index 2e37fde..53fc89e 100644 --- a/src/advertising.c +++ b/src/advertising.c @@ -1174,6 +1174,9 @@ void btd_adv_manager_destroy(struct btd_adv_manager *manager) void btd_adv_manager_refresh(struct btd_adv_manager *manager) { + if (!manager) + return; + queue_foreach(manager->clients, (queue_foreach_func_t)refresh_adv, NULL); } -- 2.7.4