Re: [PATCH 1/2] perf annotate: Fix segfault on sample histogram
From: Ian Rogers
Date: Fri May 10 2024 - 17:27:41 EST
On Fri, May 10, 2024 at 2:04 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> A symbol can have no samples, then accessing annotated_source->samples
> hashmap will get a segfault.
>
> Fixes: a3f7768bcf48 ("perf annotate: Fix memory leak in annotated_source")
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
Thanks,
Ian
> ---
> tools/perf/util/annotate.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 541988cf6e19..1451caf25e77 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -113,10 +113,11 @@ static __maybe_unused void annotated_source__delete(struct annotated_source *src
> if (src == NULL)
> return;
>
> - hashmap__for_each_entry(src->samples, cur, bkt)
> - zfree(&cur->pvalue);
> -
> - hashmap__free(src->samples);
> + if (src->samples) {
> + hashmap__for_each_entry(src->samples, cur, bkt)
> + zfree(&cur->pvalue);
> + hashmap__free(src->samples);
> + }
> zfree(&src->histograms);
> free(src);
> }
> --
> 2.45.0.118.g7fe29c98d7-goog
>