Messages in this thread | | | Subject | Re: [PATCH 2/5] perf sched: Fix memory leak in perf_sched__map() | From | Yang Jihong <> | Date | Tue, 6 Feb 2024 15:08:09 +0800 |
| |
Hello,
On 2024/2/6 2:58, Arnaldo Carvalho de Melo wrote: > On Mon, Feb 05, 2024 at 10:46:13AM +0000, Yang Jihong wrote: >> +++ b/tools/perf/builtin-sched.c >> @@ -3267,20 +3264,34 @@ static int setup_color_cpus(struct perf_sched *sched) >> >> static int perf_sched__map(struct perf_sched *sched) >> { >> + int rc = -1; >> + >> if (setup_map_cpus(sched)) >> - return -1; >> + return rc; >> >> if (setup_color_pids(sched)) >> - return -1; >> + goto out_free_map_cpus; > > I think renaming the goto labels to what they will do, dropping a > refcount, is more clear, i.e.: > > goto out_put_map_cpus; OK, will modify in v2. > >> >> if (setup_color_cpus(sched)) >> - return -1; >> + goto out_free_color_pids; >> >> setup_pager(); >> if (perf_sched__read_events(sched)) >> - return -1; >> + goto out_free_color_cpus; >> + >> + rc = 0; >> print_bad_events(sched); >> - return 0; >> + >> +out_free_color_cpus: >> + perf_cpu_map__put(sched->map.color_cpus); >> + >> +out_free_color_pids: >> + perf_thread_map__put(sched->map.color_pids); >> + >> +out_free_map_cpus: >> + free(sched->map.comp_cpus); > > Please use: > > zfree(&sched->map.comp_cpus); > OK, will change to use zfree in the next version. Other patches where uses free will also be changed to zfree.
Thanks, Yang
| |