[PATCH v1] perf pmu: Avoid segv for missing name/alias_name in wildcarding

From: Ian Rogers
Date: Wed Apr 02 2025 - 17:13:18 EST


The pmu name or alias_name fields may be NULL and should be skipped if
so. This is done in all loops of perf_pmu___name_match except the
final wildcard loop which was an oversight.

Fixes: c786468a3585 ("perf pmu: Rename name matching for no suffix or wildcard variants")
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/pmu.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 31f1e617eb20..d27bdf421c19 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -2060,7 +2060,9 @@ static bool perf_pmu___name_match(const struct perf_pmu *pmu, const char *to_mat
}
for (size_t i = 0; i < ARRAY_SIZE(names); i++) {
const char *name = names[i];
-
+
+ if (!name)
+ continue;
if (wildcard && perf_pmu__match_wildcard_uncore(name, to_match))
return true;
if (!wildcard && perf_pmu__match_ignoring_suffix_uncore(name, to_match))
--
2.49.0.504.g3bcea36a83-goog