[TSAM-3298]fixed memory leak issue. 05/71405/1 accepted/tizen/common/20160525.160307 accepted/tizen/ivi/20160525.235551 accepted/tizen/mobile/20160525.235614 accepted/tizen/tv/20160525.235538 accepted/tizen/wearable/20160525.235549 submit/tizen/20160525.084219
authorHyihong Chae <hh.chae@samsung.com>
Wed, 25 May 2016 08:32:34 +0000 (17:32 +0900)
committerHyihong Chae <hh.chae@samsung.com>
Wed, 25 May 2016 08:34:24 +0000 (17:34 +0900)
Change-Id: I8bd86ecfe4ede343585a4c3aad79d05505763d3a
Signed-off-by: HyiHong Chae <hh.chae@samsung.com>
packaging/nfc-manager.spec
src/manager/net_nfc_manager.c
src/manager/net_nfc_server.c
src/manager/net_nfc_server_context.c
src/manager/net_nfc_server_se.c

index 8fed3c4..1170237 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       nfc-manager
 Summary:    NFC framework manager
-Version:    0.1.147
+Version:    0.1.148
 Release:    0
 Group:      Network & Connectivity/NFC
 License:    Flora-1.1
index 69a2e08..d3e0acd 100755 (executable)
@@ -196,6 +196,8 @@ int main(int argc, char *argv[])
        g_main_loop_run(loop);
 
 EXIT :
+       g_main_loop_unref(loop);
+
        net_nfc_server_vconf_deinit();
        net_nfc_server_gdbus_deinit();
 
index 2d250ef..5930f32 100755 (executable)
@@ -59,6 +59,7 @@ pid_t net_nfc_server_gdbus_get_pid(const char *name)
                g_variant_get(_ret, "(u)", &pid);
                g_variant_unref(_ret);
        }
+       g_error_free(error);
 
        return pid;
 }
@@ -98,6 +99,10 @@ static void _on_name_owner_changed(GDBusConnection *connection,
 
        _name_owner_changed((GDBusProxy *)connection,
                name, old_owner, new_owner, user_data);
+
+       g_free(name);
+       g_free(old_owner);
+       g_free(new_owner);
 }
 
 static void _subscribe_name_owner_changed_event()
index c96feb6..eb57993 100755 (executable)
@@ -145,6 +145,7 @@ static bool _get_credentials(GDBusMethodInvocation *invocation, net_nfc_privileg
        ret = cynara_creds_gdbus_get_client(connection, sender_unique_name, CLIENT_METHOD_DEFAULT, &client);
        if (ret != CYNARA_API_SUCCESS) {
                DEBUG_SERVER_MSG("cynara_creds_gdbus_get_client() failed");
+               g_free(user);
                return false;
        }
 
@@ -177,10 +178,26 @@ static bool _get_credentials(GDBusMethodInvocation *invocation, net_nfc_privileg
 
        client_session = cynara_session_from_pid(pid);
 
+       if (!client_session) {
+               DEBUG_SERVER_MSG("cynara_session_from_pid() failed");
+               g_free(client);
+               g_free(user);
+               return false;
+       }
+
        ret = cynara_check(p_cynara, client, client_session, user, privilege);
        if (ret == CYNARA_API_ACCESS_ALLOWED)
                INFO_MSG("cynara PASS");
 
+       g_free(client_session);
+       g_free(client);
+       g_free(user);
+
+       if (p_cynara) {
+               cynara_finish(p_cynara);
+               p_cynara = NULL;
+       }
+
        return (ret == CYNARA_API_ACCESS_ALLOWED) ? true : false;
 }
 #endif
index c04caa4..a76b7a9 100755 (executable)
@@ -691,6 +691,7 @@ static void _sim_apdu_cb(TapiHandle *handle, int result,
     GMainLoop *loop = (GMainLoop *)user_data;
 
        g_main_loop_quit(loop);
+       g_main_loop_unref(loop);
 }
 
 static void _sim_atr_cb(TapiHandle *handle, int result,
@@ -700,6 +701,7 @@ static void _sim_atr_cb(TapiHandle *handle, int result,
        GMainLoop *loop = (GMainLoop *)user_data;
 
        g_main_loop_quit(loop);
+       g_main_loop_unref(loop);
 }
 
 
@@ -1894,6 +1896,10 @@ END :
                data->object,
                data->invocation,
                result);
+
+       g_object_unref(data->invocation);
+       g_object_unref(data->object);
+       g_free(data);
 }
 
 static gboolean se_handle_get_card_emulation_mode(