perf tracepoint: Fix memory leak in is_valid_tracepoint()
authorYang Jihong <yangjihong1@huawei.com>
Fri, 21 Apr 2023 02:59:53 +0000 (02:59 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 2 May 2023 11:36:14 +0000 (08:36 -0300)
When is_valid_tracepoint() returns 1, need to call put_events_file() to
free `dir_path`.

Fixes: 25a7d914274de386 ("perf parse-events: Use get/put_events_file()")
Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20230421025953.173826-1-yangjihong1@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/tracepoint.c

index 89ef56c..92dd8b4 100644 (file)
@@ -50,6 +50,7 @@ int is_valid_tracepoint(const char *event_string)
                                 sys_dirent->d_name, evt_dirent->d_name);
                        if (!strcmp(evt_path, event_string)) {
                                closedir(evt_dir);
+                               put_events_file(dir_path);
                                closedir(sys_dir);
                                return 1;
                        }