bt-service: Fix memory leak 30/143630/3
authorSyam Sidhardhan <s.syam@samsung.com>
Thu, 10 Aug 2017 16:23:18 +0000 (21:53 +0530)
committerSyam Sidhardhan <s.syam@samsung.com>
Thu, 10 Aug 2017 17:02:29 +0000 (22:32 +0530)
Fix memory leak
bt-service-event-receiver.c:2345]: (error) Memory leak: param
bt-service-event-receiver.c:2345]: (error) Memory leak: ipsp_param
bt-service-event-receiver.c:2357]: (error) Memory leak: param
bt-service-event-receiver.c:2357]: (error) Memory leak: ipsp_param
+more

Change-Id: I64ca60cb979ad465727b714a29e0bbc2fc814259
Signed-off-by: Syam Sidhardhan <s.syam@samsung.com>
bt-service/bt-service-event-receiver.c

index 5588e7d..87ac41e 100644 (file)
@@ -2245,11 +2245,13 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path
                address = g_malloc0(BT_ADDRESS_STRING_SIZE);
                _bt_convert_device_path_to_address(path, address);
 
-               BT_DBG("Ipsp BT Interface Name: %s", ifname);
-               BT_DBG("address: %s", address);
+               BT_DBG("Ipsp BT Interface Name: %s, address: %s", ifname, address);
+
                param = g_variant_new("(iss)", result, address, ifname);
                ipsp_param = g_variant_new("(ss)", ifname, address);
 
+               g_free(ifname);
+
                /* Set Ipv6 Addr */
                GDBusProxy *ipsp_proxy;
                if (connected) {
@@ -2258,6 +2260,8 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path
                        if (ipsp_proxy == NULL) {
                                BT_ERR("can not get ipsp proxy");
                                g_free(address);
+                               g_variant_unref(param);
+                               g_variant_unref(ipsp_param);
                                return;
                        }
 
@@ -2265,11 +2269,13 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path
                                        ipsp_param, G_DBUS_CALL_FLAGS_NONE,
                                        -1, NULL, NULL, NULL);
                } else {
+                       g_variant_unref(ipsp_param);
                        BT_DBG("IPSP disconnected");
                        ipsp_proxy = _bt_get_ipsp_proxy();
                        if (ipsp_proxy == NULL) {
                                BT_ERR("can not get ipsp proxy");
                                g_free(address);
+                               g_variant_unref(param);
                                return;
                        }
 
@@ -2279,9 +2285,7 @@ void _bt_handle_device_event(GVariant *msg, const char *member, const char *path
                }
 
                /* Send event to application */
-               _bt_send_event(BT_DEVICE_EVENT,
-                                               event,
-                                               param);
+               _bt_send_event(BT_DEVICE_EVENT, event, param);
                g_free(address);
        } else if (strcasecmp(member, "AttMtuChanged") == 0) {
                int result = BLUETOOTH_ERROR_NONE;