]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
perf drm_pmu: Fix fd_dir leaks in for_each_drm_fdinfo_in_dir()
authorGuoHan Zhao <zhaoguohan@kylinos.cn>
Mon, 8 Sep 2025 06:52:03 +0000 (14:52 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 12 Sep 2025 18:28:30 +0000 (15:28 -0300)
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>
tools/perf/util/drm_pmu.c

index 988890f37ba7a4587c40cd0427c83912aa1de5a3..98d4d2b556d4ed0d8cc871d9a0b5a0ca948313bb 100644 (file)
@@ -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);