Re: [PATCH] perf session: check for null pointer before derefernce

From: James Clark
Date: Mon Jan 24 2022 - 10:30:23 EST




On 24/01/2022 15:00, Ameer Hamza wrote:
> Move null pointer check before dereferncing the variable
>
> Addresses-Coverity: 1497622 ("Derereference before null check")
>
> Signed-off-by: Ameer Hamza <amhamza.mgc@xxxxxxxxx>
> ---
> tools/perf/util/session.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
> index f19348dddd55..e1014ab62c10 100644
> --- a/tools/perf/util/session.c
> +++ b/tools/perf/util/session.c
> @@ -1503,11 +1503,11 @@ static int machines__deliver_event(struct machines *machines,
> ++evlist->stats.nr_unknown_id;
> return 0;
> }
> - dump_sample(evsel, event, sample, perf_env__arch(machine->env));
> if (machine == NULL) {
> ++evlist->stats.nr_unprocessable_samples;
> return 0;
> }
> + dump_sample(evsel, event, sample, perf_env__arch(machine->env));
> return evlist__deliver_sample(evlist, tool, event, sample, evsel, machine);
> case PERF_RECORD_MMAP:
> return tool->mmap(tool, event, sample, machine);
>

Hi Ameer,

This mistake was made recently, but I don't think your change is the desired behavior.

It should be possible to dump stuff if machine is null. null or an empty string
should be passed to dump_sample(). It looks like some of the printfs still attempt to
show something in this case, although I didn't check them all.

James