2023-09-14 04:44:50

by Ian Rogers

[permalink] [raw]
Subject: [PATCH v1] perf symbol: Avoid an undefined behavior warning

The node (nd) may be NULL and pointer arithmetic on NULL is undefined
behavior. Move the computation of next below the NULL check on the
node.

Signed-off-by: Ian Rogers <[email protected]>
---
tools/perf/util/symbol.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 3f36675b7c8f..5b54d2639df4 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -202,11 +202,10 @@ void symbols__fixup_duplicate(struct rb_root_cached *symbols)
curr = rb_entry(nd, struct symbol, rb_node);
again:
nd = rb_next(&curr->rb_node);
- next = rb_entry(nd, struct symbol, rb_node);
-
if (!nd)
break;

+ next = rb_entry(nd, struct symbol, rb_node);
if (curr->start != next->start)
continue;

--
2.42.0.459.ge4e396fd5e-goog


2023-09-17 05:30:10

by Namhyung Kim

[permalink] [raw]
Subject: Re: [PATCH v1] perf symbol: Avoid an undefined behavior warning

On Wed, Sep 13, 2023 at 9:42 PM Ian Rogers <[email protected]> wrote:
>
> The node (nd) may be NULL and pointer arithmetic on NULL is undefined
> behavior. Move the computation of next below the NULL check on the
> node.
>
> Signed-off-by: Ian Rogers <[email protected]>

Applied to perf-tools-next, thanks!

Namhyung