| From dabaa7631776d8c10aa4d093f8b1593d68b11e36 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 20 Apr 2021 23:15:53 +0800 |
| Subject: perf auxtrace: Fix potential NULL pointer dereference |
| |
| From: Leo Yan <leo.yan@linaro.org> |
| |
| [ Upstream commit b14585d9f18dc617e975815570fe836be656b1da ] |
| |
| In the function auxtrace_parse_snapshot_options(), the callback pointer |
| "itr->parse_snapshot_options" can be NULL if it has not been set during |
| the AUX record initialization. This can cause tool crashing if the |
| callback pointer "itr->parse_snapshot_options" is dereferenced without |
| performing NULL check. |
| |
| Add a NULL check for the pointer "itr->parse_snapshot_options" before |
| invoke the callback. |
| |
| Fixes: d20031bb63dd6dde ("perf tools: Add AUX area tracing Snapshot Mode") |
| Signed-off-by: Leo Yan <leo.yan@linaro.org> |
| Acked-by: Adrian Hunter <adrian.hunter@intel.com> |
| Cc: Adrian Hunter <adrian.hunter@intel.com> |
| Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> |
| Cc: Andi Kleen <ak@linux.intel.com> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Cc: Mark Rutland <mark.rutland@arm.com> |
| Cc: Namhyung Kim <namhyung@kernel.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Tiezhu Yang <yangtiezhu@loongson.cn> |
| Link: http://lore.kernel.org/lkml/20210420151554.2031768-1-leo.yan@linaro.org |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/perf/util/auxtrace.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c |
| index 61b8dc45428f..ae5b97427192 100644 |
| --- a/tools/perf/util/auxtrace.c |
| +++ b/tools/perf/util/auxtrace.c |
| @@ -586,7 +586,7 @@ int auxtrace_parse_snapshot_options(struct auxtrace_record *itr, |
| break; |
| } |
| |
| - if (itr) |
| + if (itr && itr->parse_snapshot_options) |
| return itr->parse_snapshot_options(itr, opts, str); |
| |
| pr_err("No AUX area tracing to snapshot\n"); |
| -- |
| 2.30.2 |
| |