| From 70eda74f020c1235a3a0d719d39333ed5ac7e084 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 9 Oct 2023 11:39:10 -0700 |
| Subject: perf mem-events: Avoid uninitialized read |
| |
| From: Ian Rogers <irogers@google.com> |
| |
| [ Upstream commit 85f73c377b2ac9988a204b119aebb33ca5c60083 ] |
| |
| pmu should be initialized to NULL before perf_pmus__scan loop. Fix and |
| shrink the scope of pmu at the same time. Issue detected by clang-tidy. |
| |
| Fixes: 5752c20f3787 ("perf mem: Scan all PMUs instead of just core ones") |
| Signed-off-by: Ian Rogers <irogers@google.com> |
| Acked-by: Namhyung Kim <namhyung@kernel.org> |
| Cc: Ravi Bangoria <ravi.bangoria@amd.com> |
| Cc: Nick Desaulniers <ndesaulniers@google.com> |
| Cc: Yang Jihong <yangjihong1@huawei.com> |
| Cc: Huacai Chen <chenhuacai@kernel.org> |
| Cc: Nathan Chancellor <nathan@kernel.org> |
| Cc: Kan Liang <kan.liang@linux.intel.com> |
| Cc: llvm@lists.linux.dev |
| Cc: Ming Wang <wangming01@loongson.cn> |
| Cc: Tom Rix <trix@redhat.com> |
| Cc: bpf@vger.kernel.org |
| Link: https://lore.kernel.org/r/20231009183920.200859-10-irogers@google.com |
| Signed-off-by: Namhyung Kim <namhyung@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/perf/util/mem-events.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c |
| index 39ffe8ceb3809..954b235e12e51 100644 |
| --- a/tools/perf/util/mem-events.c |
| +++ b/tools/perf/util/mem-events.c |
| @@ -185,7 +185,6 @@ int perf_mem_events__record_args(const char **rec_argv, int *argv_nr, |
| { |
| int i = *argv_nr, k = 0; |
| struct perf_mem_event *e; |
| - struct perf_pmu *pmu; |
| |
| for (int j = 0; j < PERF_MEM_EVENTS__MAX; j++) { |
| e = perf_mem_events__ptr(j); |
| @@ -202,6 +201,8 @@ int perf_mem_events__record_args(const char **rec_argv, int *argv_nr, |
| rec_argv[i++] = "-e"; |
| rec_argv[i++] = perf_mem_events__name(j, NULL); |
| } else { |
| + struct perf_pmu *pmu = NULL; |
| + |
| if (!e->supported) { |
| perf_mem_events__print_unsupport_hybrid(e, j); |
| return -1; |
| -- |
| 2.42.0 |
| |