summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorGuoHan Zhao <zhaoguohan@kylinos.cn>2025-09-08 14:52:03 +0800
committerArnaldo Carvalho de Melo <acme@redhat.com>2025-09-12 15:28:30 -0300
commitbaa03483fdf3545f2b223a4ca775e1938d956284 (patch)
treeb1a0a6533839be75497ded34eebb9ad72108fa62 /tools
parent6f8fb022ef2c6694e47f6e2f5676eb63be66c208 (diff)
perf drm_pmu: Fix fd_dir leaks in for_each_drm_fdinfo_in_dir()
Fix file descriptor leak when callback function returns error. The function was directly returning without closing fdinfo_dir_fd and fd_dir when cb() returned non-zero value. Fixes: 28917cb17f9df9c2 ("perf drm_pmu: Add a tool like PMU to expose DRM information") Reviewed-by: Ian Rogers <irogers@google.com> Reviewed-by: Markus Elfring <Markus.Elfring@web.de> Reviewed-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: GuoHan Zhao <zhaoguohan@kylinos.cn> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20250908065203.22187-1-zhaoguohan@kylinos.cn Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/util/drm_pmu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/perf/util/drm_pmu.c b/tools/perf/util/drm_pmu.c
index 988890f37ba7..98d4d2b556d4 100644
--- a/tools/perf/util/drm_pmu.c
+++ b/tools/perf/util/drm_pmu.c
@@ -458,8 +458,10 @@ static int for_each_drm_fdinfo_in_dir(int (*cb)(void *args, int fdinfo_dir_fd, c
}
ret = cb(args, fdinfo_dir_fd, fd_entry->d_name);
if (ret)
- return ret;
+ goto close_fdinfo;
}
+
+close_fdinfo:
if (fdinfo_dir_fd != -1)
close(fdinfo_dir_fd);
closedir(fd_dir);