Skip to content

Commit

Permalink
perf pmu: Fix a potential memory leak in perf_pmu__lookup()
Browse files Browse the repository at this point in the history
The commit in Fixes has reordered some code, but missed an error handling
path.

'goto err' now, in order to avoid a memory leak in case of error.

Fixes: f63a536 ("perf pmu: Merge JSON events with sysfs at load time")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Ian Rogers <irogers@google.com>
Cc: kernel-janitors@vger.kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/9538b2b634894c33168dfe9d848d4df31fd4d801.1693085544.git.christophe.jaillet@wanadoo.fr
  • Loading branch information
Christophe JAILLET authored and Namhyung Kim committed Feb 27, 2024
1 parent eb94225 commit ef5de16
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions tools/perf/util/pmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1022,10 +1022,9 @@ struct perf_pmu *perf_pmu__lookup(struct list_head *pmus, int dirfd, const char
* type value and format definitions. Load both right
* now.
*/
if (pmu_format(pmu, dirfd, name)) {
free(pmu);
return NULL;
}
if (pmu_format(pmu, dirfd, name))
goto err;

pmu->is_core = is_pmu_core(name);
pmu->cpus = pmu_cpumask(dirfd, name, pmu->is_core);

Expand Down

0 comments on commit ef5de16

Please sign in to comment.