Fix memory leak
[platform/core/connectivity/wifi-direct-manager.git] / src / wifi-direct-iface.c
index fc38c46..0600626 100644 (file)
@@ -895,8 +895,6 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                int peer_cnt = 0;
                int i = 0;
 
-               builder_peers = g_variant_builder_new(G_VARIANT_TYPE("aa{sv}"));
-
                /* even though status is not CONNECTED,
                 * this command can be excuted only when group exist */
                if (!manager->group && manager->state < WIFI_DIRECT_STATE_CONNECTED) {
@@ -913,6 +911,7 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                        goto failed;
                }
 
+               builder_peers = g_variant_builder_new(G_VARIANT_TYPE("aa{sv}"));
                for (i = 0; i < peer_cnt; i++) {
                        GVariantBuilder builder_peer;
                        g_variant_builder_init(&builder_peer, G_VARIANT_TYPE("a{sv}"));
@@ -959,6 +958,7 @@ static void __wfd_manager_manage_iface_handler(const gchar *method_name,
                ret = WIFI_DIRECT_ERROR_NONE;
                return_parameters = g_variant_new("(iaa{sv})", ret, builder_peers);
                g_variant_builder_unref(builder_peers);
+               g_free(peers);
                goto done;
 
        } else if (!g_strcmp0(method_name, "GetConnectingPeer")) {