Fixed memory leakage issue 29/103429/1
authorkmook <kmook.choi@samsung.com>
Thu, 8 Dec 2016 09:19:48 +0000 (18:19 +0900)
committerkmook <kmook.choi@samsung.com>
Thu, 8 Dec 2016 09:19:48 +0000 (18:19 +0900)
Change-Id: I4334df5edb384162b2a36284784fd30c02b24600
Signed-off-by: kmook <kmook.choi@samsung.com>
daemon/DbusServer.cpp
lib/dbus_client.cpp

index 1963e67..2c62b38 100755 (executable)
@@ -114,6 +114,9 @@ static void __handle_request(GDBusConnection* conn, const char *sender, GVariant
                return;
        }
        conv::sendRequest(recvRequest);
+       if (binaryArray) {
+               g_variant_unref(binaryArray);
+       }
 }
 
 static void __handle_method_call(GDBusConnection *conn, const gchar *sender,
@@ -241,6 +244,9 @@ void conv::DbusServer::publish(const char* dest, int reqId, const char* subject,
        g_dbus_connection_call(dbusConnection, dest, DBUS_PATH, DBUS_IFACE,
                        METHOD_RESPOND, param, NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, NULL, &err);
 
+       if (binaryVariant) {
+               g_variant_unref(binaryVariant);
+       }
        if (err != NULL) {
                _D("dbusConnection_call Error msg : %s", err->message);
                HANDLE_GERROR(err);
index 858a462..1ca4d6b 100755 (executable)
@@ -71,6 +71,9 @@ static void handle_response(const gchar *sender, GVariant *param, GDBusMethodInv
        it->second(subject, req_id,  error, data, length, binary);
 
        g_dbus_method_invocation_return_value(invocation, NULL);
+       if (binary_array) {
+               g_variant_unref(binary_array);
+       }
 }
 
 static void handle_method_call(GDBusConnection *conn, const gchar *sender,
@@ -174,6 +177,10 @@ int conv::dbus_client::request(
        GVariant *response = g_dbus_connection_call_sync(dbus_connection, DBUS_DEST, DBUS_PATH, DBUS_IFACE,
                        METHOD_REQUEST, param, NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, &err);
 
+       if (binary_variant) {
+               g_variant_unref(binary_variant);
+       }
+
        HANDLE_GERROR(err);
        IF_FAIL_RETURN_TAG(response, CONV_ERROR_INVALID_OPERATION, _E, "Method call failed");
 
@@ -213,6 +220,10 @@ int conv::dbus_client::request_with_no_reply(
        g_dbus_connection_call(dbus_connection, DBUS_DEST, DBUS_PATH, DBUS_IFACE,
                        METHOD_REQUEST, param, NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_TIMEOUT, NULL, NULL, &err);
 
+       if (binary_variant) {
+               g_variant_unref(binary_variant);
+       }
+
        if (err) {
                HANDLE_GERROR(err);
                return CONV_ERROR_INVALID_OPERATION;