Messages in this thread Patch in this message | | | From | Yunfeng Ye <> | Subject | [PATCH] perf c2c: Fix memory leak in c2c_he_zalloc() | Date | Fri, 25 Oct 2019 17:42:47 +0800 |
| |
A memory leak in c2c_he_zalloc() is found by visual inspection.
Fix this by adding memory free on the error paths in c2c_he_zalloc().
Fixes: 7f834c2e84bb ("perf c2c report: Display node for cacheline address") Fixes: 1e181b92a2da ("perf c2c report: Add 'node' sort key") Signed-off-by: Yunfeng Ye <yeyunfeng@huawei.com> --- tools/perf/builtin-c2c.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c index e69f44941aad..ad7d38a9dcbe 100644 --- a/tools/perf/builtin-c2c.c +++ b/tools/perf/builtin-c2c.c @@ -138,21 +138,29 @@ static void *c2c_he_zalloc(size_t size)
c2c_he->cpuset = bitmap_alloc(c2c.cpus_cnt); if (!c2c_he->cpuset) - return NULL; + goto free_c2c_he;
c2c_he->nodeset = bitmap_alloc(c2c.nodes_cnt); if (!c2c_he->nodeset) - return NULL; + goto free_cpuset;
c2c_he->node_stats = zalloc(c2c.nodes_cnt * sizeof(*c2c_he->node_stats)); if (!c2c_he->node_stats) - return NULL; + goto free_nodeset;
init_stats(&c2c_he->cstats.lcl_hitm); init_stats(&c2c_he->cstats.rmt_hitm); init_stats(&c2c_he->cstats.load);
return &c2c_he->he; + +free_nodeset: + free(c2c_he->nodeset); +free_cpuset: + free(c2c_he->cpuset); +free_c2c_he: + free(c2c_he); + return NULL; }
static void c2c_he_free(void *he) -- 2.7.4
| |