Resolve memory leak in bt-service 45/224645/4
authorAmit Purwar <amit.purwar@samsung.com>
Wed, 12 Feb 2020 05:52:24 +0000 (11:22 +0530)
committerPyun DoHyun <dh79.pyun@samsung.com>
Thu, 13 Feb 2020 01:52:43 +0000 (01:52 +0000)
Resolve memory leak related to g_variant_iter_loop

Change-Id: I41e4c54f20d723789d1c2ad1e422ac32b573921c
Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
bt-service/bt-service-adapter.c
bt-service/bt-service-common.c
bt-service/bt-service-device.c
bt-service/bt-service-event-receiver.c

index 078bca7..888b792 100644 (file)
@@ -1928,6 +1928,7 @@ int _bt_is_service_used(char *service_uuid, gboolean *used)
        }
        g_variant_iter_free(iter);
        g_variant_unref(result);
+       g_variant_unref(temp);
 
        BT_DBG("Service Used? %d", *used);
 
index fd531ab..bbfe207 100644 (file)
@@ -1511,6 +1511,8 @@ void __bt_get_auth_info(GVariant *reply, char *auth_info)
                                g_variant_get(tmp_value, "ay", &value_iter);
                                while (g_variant_iter_loop(value_iter, "y", &m_value))
                                        manufacturer_data[i++] = m_value;
+
+                               g_variant_iter_free(value_iter);
                        }
                        g_variant_unref(tmp_value);
                } else {
index 4709e9d..7a87ed7 100644 (file)
@@ -492,6 +492,8 @@ bt_remote_dev_info_t *_bt_get_remote_device_info_by_object_path(
                                g_variant_get(tmp_value, "ay", &value_iter);
                                while (g_variant_iter_loop(value_iter, "y", &m_value))
                                        dev_info->manufacturer_data[i++] = m_value;
+
+                               g_variant_iter_free(value_iter);
                        }
                        g_variant_unref(tmp_value);
                } else {
index fc97873..73efe11 100644 (file)
@@ -1222,7 +1222,7 @@ static void __bt_device_property_changed_event(GVariant *msg, const char *path)
                } else if (strcasecmp(property, "IpspBtInterfaceInfo") == 0) {
                        char *ifname = NULL;
 
-                       g_variant_get(val, "s", &ifname);
+                       g_variant_get(val, "&s", &ifname);
 
                        address = g_malloc0(BT_ADDRESS_STRING_SIZE);