Dbus usage Memory Leak fix 92/197092/1
authorsungrae jo <seongrae.jo@samsung.com>
Wed, 9 Jan 2019 11:08:21 +0000 (20:08 +0900)
committersungrae jo <seongrae.jo@samsung.com>
Wed, 9 Jan 2019 11:09:36 +0000 (11:09 +0000)
Change-Id: I811c33c2a2dff8545a1e42169c82e770c9ae50d5
Signed-off-by: sungrae jo <seongrae.jo@samsung.com>
client/vc_setting_dbus.c

index d82c436..c249d40 100755 (executable)
@@ -103,10 +103,12 @@ static void __vc_setting_dbus_connection_free()
 {
        if (NULL != g_s_conn_listener) {
                dbus_connection_close(g_s_conn_listener);
+               dbus_connection_unref(g_s_conn_listener);
                g_s_conn_listener = NULL;
        }
        if (NULL != g_s_conn_sender) {
                dbus_connection_close(g_s_conn_sender);
+               dbus_connection_unref(g_s_conn_sender);
                g_s_conn_sender = NULL;
        }
 }
@@ -226,6 +228,10 @@ int vc_setting_dbus_close_connection()
        memset(service_name, '\0', 64);
        snprintf(service_name, 64, "%s%d", VC_SETTING_SERVICE_NAME, pid);
 
+       char rule[128] = {0, };
+       snprintf(rule, 128, "type='signal',interface='%s'", VC_SETTING_SERVICE_INTERFACE);
+       dbus_bus_remove_match(g_s_conn_listener, rule, NULL);
+
        dbus_bus_release_name(g_s_conn_listener, service_name, &err);
 
        if (dbus_error_is_set(&err)) {