From 7977aba5e42af19756b89faa53fc599e5a87c0a1 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Fri, 17 Aug 2012 13:50:10 +0300 Subject: [PATCH] service: Fix reference counting for serv_adapter->adapter --- plugins/service.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/service.c b/plugins/service.c index 288f84960..9f7bdb7f6 100644 --- a/plugins/service.c +++ b/plugins/service.c @@ -729,6 +729,9 @@ static void path_unregister(void *data) exit_callback(connection, user_record); } + if (serv_adapter->adapter != NULL) + btd_adapter_unref(serv_adapter->adapter); + g_free(serv_adapter); } @@ -742,7 +745,9 @@ static int register_interface(const char *path, struct btd_adapter *adapter) if (serv_adapter == NULL) return -ENOMEM; - serv_adapter->adapter = adapter; + if (adapter != NULL) + serv_adapter->adapter = btd_adapter_ref(adapter); + serv_adapter->pending_list = NULL; if (g_dbus_register_interface(connection, path, SERVICE_INTERFACE, -- 2.47.3