Fixed memory leaks 04/188804/1 accepted/tizen/unified/20180911.055420 submit/tizen/20180910.131901
authorSaurav Babu <saurav.babu@samsung.com>
Mon, 10 Sep 2018 10:46:34 +0000 (16:16 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Mon, 10 Sep 2018 10:46:34 +0000 (16:16 +0530)
g_variant_builder_new() allocates memory and should be freed using
g_variant_builder_unref().
Below is the valgrind report:
==6712== 72 bytes in 1 blocks are definitely lost in loss record 2,933 of 3,062
==6712==    at 0x48458A4: malloc (vg_replace_malloc.c:299)
==6712==    by 0x4AB21B3: g_malloc (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4ACB4A3: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4AE82BF: g_variant_builder_new (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x1236F1: __netconfig_update_default_connection_info (network-state.c:797)
==6712==    by 0x125727: netconfig_update_default_profile (network-state.c:1206)
==6712==    by 0x12AA1D: _service_signal_cb (signal-handler.c:355)
==6712==    by 0x4957997: ??? (in /usr/lib/libgio-2.0.so.0.5200.2)
==6712==    by 0x4AAC8E7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4AACC77: ??? (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4AACFD7: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x10F9F9: main (main.c:152)
==6712==
==6712== 72 bytes in 1 blocks are definitely lost in loss record 2,934 of 3,062
==6712==    at 0x48458A4: malloc (vg_replace_malloc.c:299)
==6712==    by 0x4AB21B3: g_malloc (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4ACB4A3: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4AE82BF: g_variant_builder_new (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x123A8D: __netconfig_update_default_connection_info (network-state.c:764)
==6712==    by 0x125923: netconfig_update_default_profile (network-state.c:1193)
==6712==    by 0x12B71F: _service_signal_cb (signal-handler.c:399)
==6712==    by 0x4957997: ??? (in /usr/lib/libgio-2.0.so.0.5200.2)
==6712==    by 0x4AAC8E7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4AACC77: ??? (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x4AACFD7: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.2)
==6712==    by 0x10F9F9: main (main.c:152)

Change-Id: I2306aaa418fb04d29f7f717a25c0abe4bf47dc30
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
src/network-state.c
src/signal-handler.c
src/wifi-bssid-scan.c

index 1c08078..bd6c95a 100755 (executable)
@@ -744,6 +744,7 @@ static void __netconfig_update_default_connection_info(void)
                }
 
                params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+               g_variant_builder_unref(builder);
 
                netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
                                                   NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
@@ -787,6 +788,8 @@ static void __netconfig_update_default_connection_info(void)
                                                   params);
                netconfig_set_vconf_int("memory/private/wifi/frequency", 0);
 
+               g_variant_builder_unref(builder);
+
                DBG("Successfully clear IP and PROXY up");
 
        } else if (profile != NULL) {
@@ -897,6 +900,8 @@ static void __netconfig_update_default_connection_info(void)
                                                   NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
                                                   params);
 
+               g_variant_builder_unref(builder);
+
                DBG("Successfully update default network configuration");
        }
 
index e1cd52e..cfbf83a 100755 (executable)
@@ -143,6 +143,8 @@ static void __netconfig_extract_ipv4_signal_data(GVariant *dictionary,
                                params = g_variant_new("(@a{sv})",
                                                                           g_variant_builder_end(builder));
 
+                               g_variant_builder_unref(builder);
+
                                netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
                                                   NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
                                                   params);
@@ -185,6 +187,7 @@ static void __netconfig_extract_ipv6_signal_data(GVariant *dictionary,
 
                                params = g_variant_new("(@a{sv})",
                                                                           g_variant_builder_end(builder));
+                               g_variant_builder_unref(builder);
 
                                netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
                                                   NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
@@ -479,6 +482,7 @@ static void _service_signal_cb(GDBusConnection *conn,
 
                                sig_params = g_variant_new("(@a{sv})",
                                                                g_variant_builder_end(builder));
+                               g_variant_builder_unref(builder);
 
                                netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
                                                   NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
@@ -500,6 +504,7 @@ static void _service_signal_cb(GDBusConnection *conn,
 
                                        sig_params = g_variant_new("(@a{sv})",
                                                                g_variant_builder_end(builder));
+                                       g_variant_builder_unref(builder);
 
                                        netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
                                                           NETCONFIG_NETWORK_INTERFACE,
index 0f925f9..f285c52 100755 (executable)
@@ -436,6 +436,7 @@ static int  __netconfig_wifi_bssid_create_interface(void)
        builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
        g_variant_builder_add(builder, "{sv}", key, g_variant_new_string(val));
        message = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+       g_variant_builder_unref(builder);
 
        g_dbus_connection_call(connection,
                        SUPPLICANT_SERVICE,