From 754d1030e2c72473cd6def0252d374a409fe8dd1 Mon Sep 17 00:00:00 2001 From: Amit Purwar Date: Wed, 12 Feb 2020 11:22:24 +0530 Subject: [PATCH] Resolve memory leak in bt-service Resolve memory leak related to g_variant_iter_loop Change-Id: I41e4c54f20d723789d1c2ad1e422ac32b573921c Signed-off-by: Amit Purwar --- bt-service/bt-service-adapter.c | 1 + bt-service/bt-service-common.c | 2 ++ bt-service/bt-service-device.c | 2 ++ bt-service/bt-service-event-receiver.c | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bt-service/bt-service-adapter.c b/bt-service/bt-service-adapter.c index 078bca7..888b792 100644 --- a/bt-service/bt-service-adapter.c +++ b/bt-service/bt-service-adapter.c @@ -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); diff --git a/bt-service/bt-service-common.c b/bt-service/bt-service-common.c index fd531ab..bbfe207 100644 --- a/bt-service/bt-service-common.c +++ b/bt-service/bt-service-common.c @@ -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 { diff --git a/bt-service/bt-service-device.c b/bt-service/bt-service-device.c index 4709e9d..7a87ed7 100644 --- a/bt-service/bt-service-device.c +++ b/bt-service/bt-service-device.c @@ -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 { diff --git a/bt-service/bt-service-event-receiver.c b/bt-service/bt-service-event-receiver.c index fc97873..73efe11 100644 --- a/bt-service/bt-service-event-receiver.c +++ b/bt-service/bt-service-event-receiver.c @@ -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); -- 2.7.4