[CID-1026364] Fix memory leak 46/189346/4 accepted/tizen_5.0_unified tizen_5.0 accepted/tizen/5.0/unified/20181102.020221 accepted/tizen/unified/20180918.062903 submit/tizen/20180917.072141 submit/tizen_5.0/20181101.000003
authorSeonah Moon <seonah1.moon@samsung.com>
Mon, 17 Sep 2018 06:46:38 +0000 (15:46 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Mon, 17 Sep 2018 07:11:04 +0000 (16:11 +0900)
Change-Id: Id62d49228067ee2c2365745cb7b98e2d1c0a97d7

src/mobileap_bluetooth.c

index 3c9d3ba..a7c9116 100755 (executable)
@@ -899,14 +899,20 @@ static void __bt_nap_ipv6_connection_changed(bool connected, const char *remote_
                }
 
                ret = _mh_core_create_ipv6_address(i, (const char *)bnep_hw_addr, &bnep_ipv6_address);
-               if (bnep_ipv6_address) {
-                       ret = _mh_core_set_ipv6_address(interface_name, bnep_ipv6_address);
-                       if (ret != MOBILE_AP_ERROR_NONE) {
-                               ERR("Setting ip address error : %d\n", ret);
-                               g_free(bnep_hw_addr);
-                               g_free(remote_ipv6_address);
-                               return;
-                       }
+               if (ret != MOBILE_AP_ERROR_NONE || bnep_ipv6_address == NULL) {
+                       ERR("Failed to create ipv6 address");
+                       g_free(bnep_hw_addr);
+                       g_free(remote_ipv6_address);
+                       return;
+               }
+
+               ret = _mh_core_set_ipv6_address(interface_name, bnep_ipv6_address);
+               if (ret != MOBILE_AP_ERROR_NONE) {
+                       ERR("Setting ip address error : %d\n", ret);
+                       g_free(bnep_hw_addr);
+                       g_free(bnep_ipv6_address);
+                       g_free(remote_ipv6_address);
+                       return;
                }
 
                DBG("bnep%d IPv6 address(%s)", i, bnep_ipv6_address);
@@ -918,6 +924,7 @@ static void __bt_nap_ipv6_connection_changed(bool connected, const char *remote_
                if (network_interface == NULL || network_ipv6_address == NULL) {
                        ERR("Failed to get network information!!");
                        g_free(bnep_hw_addr);
+                       g_free(bnep_ipv6_address);
                        g_free(remote_ipv6_address);
                        return;
                }
@@ -954,7 +961,6 @@ static void __bt_nap_ipv6_connection_changed(bool connected, const char *remote_
                                _send_dbus_station_info("DhcpConnected", sta_info);
                        }
                }
-
                g_free(bnep_hw_addr);
                g_free(bnep_ipv6_address);
                g_free(remote_ipv6_address);