Message ID | 20231005230851.3666908-11-irogers@google.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | clang-tools support in tools | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Thu, Oct 5, 2023 at 4:09 PM Ian Rogers <irogers@google.com> wrote: > > In the unlikely case of having a symbol without a mapping, avoid a > NULL dereference that clang-tidy warns about. I'm not sure if it's possible to have a symbol without a map, but I'm also fine with being conservative. Thanks, Namhyung > > Signed-off-by: Ian Rogers <irogers@google.com> > --- > tools/perf/util/dlfilter.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/dlfilter.c b/tools/perf/util/dlfilter.c > index 1dbf27822ee2..5e54832137a9 100644 > --- a/tools/perf/util/dlfilter.c > +++ b/tools/perf/util/dlfilter.c > @@ -52,8 +52,10 @@ static void al_to_d_al(struct addr_location *al, struct perf_dlfilter_al *d_al) > d_al->sym_end = sym->end; > if (al->addr < sym->end) > d_al->symoff = al->addr - sym->start; > - else > + else if (al->map) > d_al->symoff = al->addr - map__start(al->map) - sym->start; > + else > + d_al->symoff = 0; > d_al->sym_binding = sym->binding; > } else { > d_al->sym = NULL; > -- > 2.42.0.609.gbb76f46606-goog >
diff --git a/tools/perf/util/dlfilter.c b/tools/perf/util/dlfilter.c index 1dbf27822ee2..5e54832137a9 100644 --- a/tools/perf/util/dlfilter.c +++ b/tools/perf/util/dlfilter.c @@ -52,8 +52,10 @@ static void al_to_d_al(struct addr_location *al, struct perf_dlfilter_al *d_al) d_al->sym_end = sym->end; if (al->addr < sym->end) d_al->symoff = al->addr - sym->start; - else + else if (al->map) d_al->symoff = al->addr - map__start(al->map) - sym->start; + else + d_al->symoff = 0; d_al->sym_binding = sym->binding; } else { d_al->sym = NULL;
In the unlikely case of having a symbol without a mapping, avoid a NULL dereference that clang-tidy warns about. Signed-off-by: Ian Rogers <irogers@google.com> --- tools/perf/util/dlfilter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)