From 05fff2a08f2a1b841dcb85e952a128547d77ff1e Mon Sep 17 00:00:00 2001 From: Dewal Agarwal Date: Mon, 30 Mar 2020 10:39:41 +0530 Subject: [PATCH] Fix Memory Leak Change-Id: Iba2001aa96ed199131cb1b29110cac65d8be42a4 Signed-off-by: Dewal Agarwal --- src/battery_dump/bd_history_item.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/battery_dump/bd_history_item.c b/src/battery_dump/bd_history_item.c index 3c443b0..218f85d 100644 --- a/src/battery_dump/bd_history_item.c +++ b/src/battery_dump/bd_history_item.c @@ -516,8 +516,6 @@ static int bd_get_and_print_gwst_stat_entry_from_dump(int fd, long int duration) static int bd_get_and_print_gcpu_stat_entry_from_dump(int fd, long int duration) { ENTER; - bd_gl_cpu_stat_s *gcpu_stat = (bd_gl_cpu_stat_s *)calloc(1, sizeof(bd_gl_cpu_stat_s)); - BM_CHECK_MEM_ALLOC(gcpu_stat, {}); int ret = BATTERY_MONITOR_ERROR_NONE; const char *rid_str = NULL; int usage = 0; @@ -526,10 +524,12 @@ static int bd_get_and_print_gcpu_stat_entry_from_dump(int fd, long int duration) bm_server_query_resource_usage_resourceid(rid_str, 1, &ret); if (res_use == NULL || ret != BATTERY_MONITOR_ERROR_NONE) { _ERR("For resourceid %s", rid_str); - _DBG("Dump only system stats"); + return ret; } usage = res_use->usage; float usagemah = (float)usage/3600; + bd_gl_cpu_stat_s *gcpu_stat = (bd_gl_cpu_stat_s *)calloc(1, sizeof(bd_gl_cpu_stat_s)); + BM_CHECK_MEM_ALLOC(gcpu_stat, {BM_FREE(res_use); }); ret = bm_server_battery_dump_query_from_db(gcpu_stat, 7, duration); if (ret != BATTERY_MONITOR_ERROR_NONE) { _ERR("Unable to fetch data from DB"); @@ -537,6 +537,7 @@ static int bd_get_and_print_gcpu_stat_entry_from_dump(int fd, long int duration) BM_FREE(res_use); return ret; } + GString *dump_p = g_string_sized_new(30); BM_CHECK_MEM_ALLOC(dump_p, {BM_FREE(gcpu_stat); BM_FREE(res_use);}); g_string_append(dump_p, TIZEN_DUMP_VERSION); @@ -550,7 +551,9 @@ static int bd_get_and_print_gcpu_stat_entry_from_dump(int fd, long int duration) _DBG("%s", dump_p->str); if (write(fd, dump_p->str, dump_p->len) < 0) _WARN("write error"); - g_string_free(dump_p, TRUE); + + g_free(dump_p->str); + BM_FREE(gcpu_stat); EXIT; return ret; -- 2.7.4