From 927059ba6097147cee62a56d43c75437e26614b7 Mon Sep 17 00:00:00 2001 From: Yun-Hao Chung Date: Fri, 12 Nov 2021 12:01:49 +0800 Subject: admin: fix devices not reset When |admin_policy_remove| is called, we set |devices| to NULL but never set it back until |admin_init|. This makes admin lost track of current registered device interface, so the next |admin_policy_removed| will not be able to unregister those interfaces. Reviewed-by: Archie Pusaka --- plugins/admin.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/admin.c b/plugins/admin.c index a8e7d2cd7..0787e8381 100644 --- a/plugins/admin.c +++ b/plugins/admin.c @@ -496,6 +496,9 @@ static int admin_policy_adapter_probe(struct btd_adapter *adapter) { const char *adapter_path; + if (!devices) + devices = queue_new(); + if (policy_data) { btd_warn(policy_data->adapter_id, "Policy data already exists"); @@ -623,7 +626,6 @@ static int admin_init(void) DBG(""); dbus_conn = btd_get_dbus_connection(); - devices = queue_new(); return btd_register_adapter_driver(&admin_policy_driver); } -- cgit v1.2.1