[PATCH v1] perf vdso: Missed put on 32-bit dsos

From: Ian Rogers
Date: Thu Sep 12 2024 - 14:28:46 EST


If the dso type doesn't match then NULL is returned but the dso should
be put first.

Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/util/vdso.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/vdso.c b/tools/perf/util/vdso.c
index 1b6f8f6db7aa..c12f5d8c4bf6 100644
--- a/tools/perf/util/vdso.c
+++ b/tools/perf/util/vdso.c
@@ -308,8 +308,10 @@ static struct dso *machine__find_vdso(struct machine *machine,
if (!dso) {
dso = dsos__find(&machine->dsos, DSO__NAME_VDSO,
true);
- if (dso && dso_type != dso__type(dso, machine))
+ if (dso && dso_type != dso__type(dso, machine)) {
+ dso__put(dso);
dso = NULL;
+ }
}
break;
case DSO__TYPE_X32BIT:
--
2.46.0.662.g92d0881bb0-goog