Le 26/08/2023 à 23:32, Christophe JAILLET a écrit :
> 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: f63a536f03a2 ("perf pmu: Merge JSON events with sysfs at load time")
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
Hi,
polite reminder.
CJ
> tools/perf/util/pmu.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index bb2ca29cd7bd..8dfce84ad9fe 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -1018,10 +1018,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);
>
On Sun, Feb 25, 2024 at 7:42 AM Christophe JAILLET
<[email protected]> wrote:
>
> Le 26/08/2023 à 23:32, Christophe JAILLET a écrit :
> > 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: f63a536f03a2 ("perf pmu: Merge JSON events with sysfs at load time")
> > Signed-off-by: Christophe JAILLET <[email protected]>
> > ---
>
> Hi,
>
> polite reminder.
Apologies for the delay.
Reviewed-by: Ian Rogers <[email protected]>
Thanks,
Ian
> CJ
>
>
> > tools/perf/util/pmu.c | 7 +++----
> > 1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> > index bb2ca29cd7bd..8dfce84ad9fe 100644
> > --- a/tools/perf/util/pmu.c
> > +++ b/tools/perf/util/pmu.c
> > @@ -1018,10 +1018,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);
> >
>