From 02301e35945abbdd31ffe8655de5364473172f2f Mon Sep 17 00:00:00 2001 From: Adrian Szyndela Date: Mon, 16 Dec 2019 17:16:49 +0100 Subject: [PATCH] lowmem: fix memleak on error Change-Id: I10a70086f0302335c9023b4892388b2b3209674c --- src/memory/lowmem-limit.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/memory/lowmem-limit.c b/src/memory/lowmem-limit.c index 35e8dd7..a289659 100644 --- a/src/memory/lowmem-limit.c +++ b/src/memory/lowmem-limit.c @@ -178,9 +178,15 @@ static void memlimit_finish_cb(void *data, int ret) { struct memory_limit_log *mlog = (struct memory_limit_log *)data; - if (!mlog || !mlog->cgdir) + if (!mlog) return; + if (!mlog->cgdir) { + free(mlog->appname); + free(mlog); + return; + } + /* * send sigabt signal * If debug is enabled, it makes crash popup with log files. @@ -196,10 +202,8 @@ static void memlimit_finish_cb(void *data, int ret) else if (mem_limit == MEM_LIMIT_OOM) cgroup_write_node_uint32(mlog->cgdir, MEMCG_OOM_CONTROL_PATH, 0); - if (mlog->appname) - free(mlog->appname); - if (mlog->cgdir) - free(mlog->cgdir); + free(mlog->appname); + free(mlog->cgdir); free(mlog); } @@ -356,8 +360,7 @@ static bool lowmem_limit_cb(int fd, void *data) remove_mle: g_hash_table_remove(memory_limit_hash, cg_dir); - if (mlog) - free(mlog); + free(mlog); return false; } -- 2.7.4