Re: [PATCH] perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp()

From: Ian Rogers
Date: Thu Apr 13 2023 - 11:49:32 EST


On Thu, Apr 13, 2023 at 6:03 AM Markus Elfring <Markus.Elfring@xxxxxx> wrote:
>
> Date: Thu, 13 Apr 2023 14:46:39 +0200
>
> Addresses of two data structure members were determined before
> corresponding null pointer checks in the implementation of
> the function “sort__sym_from_cmp”.
>
> Thus avoid the risk for undefined behaviour by removing extra
> initialisations for the local variables “from_l” and “from_r”
> (also because they were already reassigned with the same value
> behind this pointer check).
>
> This issue was detected by using the Coccinelle software.
>
> Fixes: 1b9e97a2a95e4941dcfa968c4b2e04022e9a343e ("perf tools: Fix report -F symbol_from for data without branch info")
> Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>

Acked-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/util/sort.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> index 80c9960c37e5..f2ffaf90648e 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -1020,8 +1020,7 @@ static int hist_entry__dso_to_filter(struct hist_entry *he, int type,
> static int64_t
> sort__sym_from_cmp(struct hist_entry *left, struct hist_entry *right)
> {
> - struct addr_map_symbol *from_l = &left->branch_info->from;
> - struct addr_map_symbol *from_r = &right->branch_info->from;
> + struct addr_map_symbol *from_l, *from_r;
>
> if (!left->branch_info || !right->branch_info)
> return cmp_null(left->branch_info, right->branch_info);
> --
> 2.40.0
>