diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index be850e9f88520dcaafa8fac94b79975159188aa5..1c508c1e4aee23b7954a45accd9e9d22e6ffd789 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"); diff --git a/tools/perf/util/hisi-ptt.c b/tools/perf/util/hisi-ptt.c index 45b614bb73bfa321ac66c6c63e935506748ff0be..43bd1ca62d58244583f8c8f742d890c79b6e7b36 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);