Fix memory leak 94/153194/1 accepted/tizen/unified/20171011.065847 submit/tizen/20171010.084928
authorJiung <jiung.yu@samsung.com>
Thu, 28 Sep 2017 05:28:12 +0000 (14:28 +0900)
committerJiung <jiung.yu@samsung.com>
Thu, 28 Sep 2017 05:28:47 +0000 (14:28 +0900)
Change-Id: I0189a86f870ccad14a61569ae11608fe18380545
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
packaging/wifi-direct-manager.spec
plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c
src/wifi-direct-iface.c

index c139f9f..48950a7 100644 (file)
@@ -6,7 +6,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.246
+Version:       1.2.247
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index 9d7a193..d21a0f6 100644 (file)
@@ -522,6 +522,7 @@ static int __ws_unpack_ay_malloc(unsigned char **dst, GVariantIter *iter)
        tmp_dst = (unsigned char *)g_try_malloc0(length + 1);
        if (!tmp_dst) {
                WDP_LOGE("failed to allocate memory");
+               g_variant_iter_free(iter_copy);
                return 0;
        }
 
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")) {