From 8a5b8c17ee00e1d0de8bf6566aa96ad20badf102 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 4 Jan 2013 10:54:10 -0800 Subject: [PATCH] core: Unregister all handlers for the index on adapter removal --- src/adapter.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/adapter.c b/src/adapter.c index 61d14ce92..5a30fc01c 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -1951,6 +1951,15 @@ static void adapter_free(gpointer user_data) g_queue_foreach(adapter->auths, free_service_auth, NULL); g_queue_free(adapter->auths); + /* + * Unregister all handlers for this specific index since + * the adapter bound to them is no longer valid. + * + * This also avoids having multiple instances of the same + * handler in case indexes got removed and re-added. + */ + mgmt_unregister_index(adapter->mgmt, adapter->dev_id); + mgmt_unref(adapter->mgmt); sdp_list_free(adapter->services, NULL); -- 2.47.3