Fixed two memory leak issues of the Perf tool: a) perf hisi-ptt: Fix memory leak in lseek failure handling b) perf header: Fix one memory leakage in perf_event__fprintf_event_update
Kuan-Wei Chiu (1): perf hisi-ptt: Fix memory leak in lseek failure handling
Yicong Yang (1): perf header: Fix one memory leakage in perf_event__fprintf_event_update()
tools/perf/util/header.c | 6 ++++-- tools/perf/util/hisi-ptt.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-)
From: Kuan-Wei Chiu visitorckw@gmail.com
mainline inclusion from mainline-v6.7-rc1 commit be7a4caa7c45bd4b0a39cdb260905b52a87c8688 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8MEWF CVE: NA
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i...
-------------------------------------------
In the previous code, there was a memory leak issue where the previously allocated memory was not freed upon a failed lseek operation. This patch addresses the problem by releasing the old memory before returning -errno in case of a lseek failure. This ensures that memory is properly managed and avoids potential memory leaks.
Signed-off-by: Kuan-Wei Chiu visitorckw@gmail.com Acked-by: Namhyung Kim namhyung@kernel.org Cc: yangyicong@hisilicon.com Cc: jonathan.cameron@huawei.com Link: https://lore.kernel.org/r/20230930072719.1267784-1-visitorckw@gmail.com Signed-off-by: Namhyung Kim namhyung@kernel.org Signed-off-by: Junhao He hejunhao3@huawei.com --- tools/perf/util/hisi-ptt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/hisi-ptt.c b/tools/perf/util/hisi-ptt.c index 45b614bb73bf..43bd1ca62d58 100644 --- a/tools/perf/util/hisi-ptt.c +++ b/tools/perf/util/hisi-ptt.c @@ -108,8 +108,10 @@ static int hisi_ptt_process_auxtrace_event(struct perf_session *session, data_offset = 0; } else { data_offset = lseek(fd, 0, SEEK_CUR); - if (data_offset == -1) + if (data_offset == -1) { + free(data); return -errno; + } }
err = readn(fd, data, size);
From: Yicong Yang yangyicong@hisilicon.com
driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8MEWF CVE: NA
--------------------------------
When dump the raw trace by `perf report -D` ASan reports a memory leakage in perf_event__fprintf_event_update(). It shows that we allocated a temporary cpumap for dumping the CPUs but doesn't release it and it's not used elsewhere. Fix this by free the cpumap after the dumping.
Fixes: c853f9394b7b ("perf tools: Add perf_event__fprintf_event_update function") Signed-off-by: Yicong Yang yangyicong@hisilicon.com Signed-off-by: Junhao He hejunhao3@huawei.com --- tools/perf/util/header.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index be850e9f8852..1c508c1e4aee 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -3970,10 +3970,12 @@ size_t perf_event__fprintf_event_update(union perf_event *event, FILE *fp) ret += fprintf(fp, "... ");
map = cpu_map__new_data(&ev_cpus->cpus); - if (map) + if (map) { ret += cpu_map__fprintf(map, fp); - else + perf_cpu_map__put(map); + } else { ret += fprintf(fp, "failed to get cpus\n"); + } break; default: ret += fprintf(fp, "... unknown type\n");