linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] adapter: Fix accessing NULL adv_manager
@ 2018-04-20 11:02 Szymon Janc
  2018-04-20 11:37 ` Szymon Janc
  0 siblings, 1 reply; 2+ messages in thread
From: Szymon Janc @ 2018-04-20 11:02 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

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.
---
 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 f91b04173..932b2a34d 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -540,8 +540,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 b976562c4..0cb6eac3a 100644
--- a/src/advertising.c
+++ b/src/advertising.c
@@ -1173,6 +1173,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.14.3


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] adapter: Fix accessing NULL adv_manager
  2018-04-20 11:02 [PATCH] adapter: Fix accessing NULL adv_manager Szymon Janc
@ 2018-04-20 11:37 ` Szymon Janc
  0 siblings, 0 replies; 2+ messages in thread
From: Szymon Janc @ 2018-04-20 11:37 UTC (permalink / raw)
  To: linux-bluetooth

On Friday, 20 April 2018 13:02:38 CEST Szymon Janc wrote:
> 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.
> ---
>  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 f91b04173..932b2a34d 100644
> --- a/src/adapter.c
> +++ b/src/adapter.c
> @@ -540,8 +540,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 b976562c4..0cb6eac3a 100644
> --- a/src/advertising.c
> +++ b/src/advertising.c
> @@ -1173,6 +1173,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);
>  }

Applied.

-- 
pozdrawiam
Szymon Janc



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-04-20 11:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-20 11:02 [PATCH] adapter: Fix accessing NULL adv_manager Szymon Janc
2018-04-20 11:37 ` Szymon Janc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).