Re: [PATCH] perf callchain: Fix segfault in thread__resolve_callchain_sample()

From: Arnaldo Carvalho de Melo
Date: Thu Nov 14 2019 - 14:13:48 EST


Em Thu, Nov 14, 2019 at 04:25:38PM +0200, Adrian Hunter escreveu:
> Do not dereference 'chain' when it is NULL.
>
> $ perf record -e intel_pt//u -e branch-misses:u uname
> $ perf report --itrace=l --branch-history
> perf: Segmentation fault

Thanks, tested and applied.

- Arnaldo

> Fixes: e9024d519d89 ("perf callchain: Honour the ordering of PERF_CONTEXT_{USER,KERNEL,etc}")
> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> ---
> tools/perf/util/machine.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
> index 6a0f5c25ce3e..0a21ab69a247 100644
> --- a/tools/perf/util/machine.c
> +++ b/tools/perf/util/machine.c
> @@ -2414,7 +2414,7 @@ static int thread__resolve_callchain_sample(struct thread *thread,
> }
>
> check_calls:
> - if (callchain_param.order != ORDER_CALLEE) {
> + if (chain && callchain_param.order != ORDER_CALLEE) {
> err = find_prev_cpumode(chain, thread, cursor, parent, root_al,
> &cpumode, chain->nr - first_call);
> if (err)
> --
> 2.17.1

--

- Arnaldo