From b52c6ff48aee25d0ea06fd87df04d2ebda782351 Mon Sep 17 00:00:00 2001 From: Yun-Hao Chung Date: Fri, 12 Nov 2021 12:01:49 +0800 Subject: [PATCH] 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 Signed-off-by: Anuj Jain Signed-off-by: Ayush Garg --- plugins/admin.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/admin.c b/plugins/admin.c index df06d23..e6db86e 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"); @@ -622,7 +625,6 @@ static int admin_init(void) DBG(""); dbus_conn = btd_get_dbus_connection(); - devices = queue_new(); return btd_register_adapter_driver(&admin_policy_driver); } -- 2.7.4