[PATCH] perf pmu: Improve exception handling in perf_pmu__lookup()
From: Markus Elfring
Date: Tue Mar 04 2025 - 07:13:42 EST
From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 4 Mar 2025 12:55:05 +0100
A zfree() call is not helpful after a failed strdup(name) call in
this function implementation.
Thus use an other jump target instead.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
tools/perf/util/pmu.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 57450c73fb63..74eb46390233 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -1107,7 +1107,7 @@ struct perf_pmu *perf_pmu__lookup(struct list_head *pmus, int dirfd, const char
pmu->name = strdup(name);
if (!pmu->name)
- goto err;
+ goto free_pmu;
/*
* Read type early to fail fast if a lookup name isn't a PMU. Ensure
@@ -1155,6 +1155,7 @@ struct perf_pmu *perf_pmu__lookup(struct list_head *pmus, int dirfd, const char
return pmu;
err:
zfree(&pmu->name);
+free_pmu:
free(pmu);
return NULL;
}
--
2.48.1