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
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