Unverified Commit 08b1347b authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3274 Fixed some memory leak issues of the Perf tool

Merge Pull Request from: @ci-robot 
 
PR sync from: Junhao He <hejunhao3@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/5KTDN4ARYTXSNCZO5D7XM2T2QFV3IGN5/ 
Fixed some memory leak issues of the Perf tool:
a) ptt: Fix memory leak in lseek failure handling
b) ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event()
c) 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 (2):
  perf hisi-ptt: Fix one memory leakage in
    hisi_ptt_process_auxtrace_event()
  perf header: Fix one memory leakage in
    perf_event__fprintf_event_update()


-- 
2.33.0
 
https://gitee.com/openeuler/kernel/issues/I8MEWF 
 
Link:https://gitee.com/openeuler/kernel/pulls/3274

 

Reviewed-by: default avatarXu Kuohai <xukuohai@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 5c4fe008 67e9e7e1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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");
+4 −1
Original line number Diff line number Diff line
@@ -108,9 +108,11 @@ 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);
	if (err != (ssize_t)size) {
@@ -121,6 +123,7 @@ static int hisi_ptt_process_auxtrace_event(struct perf_session *session,
	if (dump_trace)
		hisi_ptt_dump_event(ptt, data, size);

	free(data);
	return 0;
}