* [PATCH] perf: arm-spe: Fix null-ptr-deref in arm_spe__alloc_metadata()
@ 2024-12-20 14:57 Nihar Chaithanya
2024-12-20 17:16 ` James Clark
0 siblings, 1 reply; 2+ messages in thread
From: Nihar Chaithanya @ 2024-12-20 14:57 UTC (permalink / raw)
To: john.g.garry, will, james.clark, mike.leach, leo.yan, peterz,
mingo, acme, namhyung, mark.rutland, alexander.shishkin, jolsa,
irogers, adrian.hunter, kan.liang, graham.woodward, bwicaksono,
linux-arm-kernel, linux-perf-users, linux-kernel
Cc: skhan, Nihar Chaithanya
When metadata is allocated using arm_spe__alloc_metadata(), if the
metadata version is 1, metadata is returned as NULL. This value
is dereferenced later in arm_spe__free_metadata() and it can cause
null-ptr-deref.
Modify the NULL check for metadata to return -EINVAL even when
metadata_ver == 1.
This issue was reported by Coverity scan [1].
[1] https://scan5.scan.coverity.com/#/project-view/63616/10063?selectedIssue=1636359
Closes: https://scan5.scan.coverity.com/#/project-view/63616/10063?selectedIssue=1636359
Signed-off-by: Nihar Chaithanya <niharchaithanya@gmail.com>
---
tools/perf/util/arm-spe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c
index dbf13f47879c..55827d8ce133 100644
--- a/tools/perf/util/arm-spe.c
+++ b/tools/perf/util/arm-spe.c
@@ -1497,7 +1497,7 @@ int arm_spe_process_auxtrace_info(union perf_event *event,
metadata = arm_spe__alloc_metadata(auxtrace_info, &metadata_ver,
&nr_cpu);
- if (!metadata && metadata_ver != 1) {
+ if (!metadata) {
pr_err("Failed to parse Arm SPE metadata.\n");
return -EINVAL;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] perf: arm-spe: Fix null-ptr-deref in arm_spe__alloc_metadata()
2024-12-20 14:57 [PATCH] perf: arm-spe: Fix null-ptr-deref in arm_spe__alloc_metadata() Nihar Chaithanya
@ 2024-12-20 17:16 ` James Clark
0 siblings, 0 replies; 2+ messages in thread
From: James Clark @ 2024-12-20 17:16 UTC (permalink / raw)
To: Nihar Chaithanya, Leo Yan
Cc: skhan, john.g.garry, will, mike.leach, leo.yan, peterz, mingo,
acme, namhyung, mark.rutland, alexander.shishkin, jolsa, irogers,
adrian.hunter, kan.liang, graham.woodward, bwicaksono,
linux-arm-kernel, linux-perf-users, linux-kernel
On 20/12/2024 2:57 pm, Nihar Chaithanya wrote:
> When metadata is allocated using arm_spe__alloc_metadata(), if the
> metadata version is 1, metadata is returned as NULL. This value
> is dereferenced later in arm_spe__free_metadata() and it can cause
> null-ptr-deref.
>
> Modify the NULL check for metadata to return -EINVAL even when
> metadata_ver == 1.
>
Hi Nihar,
I don't think this is the right fix. Doesn't that mean we can't open
files with V1 anymore? Did you test opening an old SPE file on a new
version of Perf? I actually thought I tested this before but maybe not
if there's a NULL deref.
Seems like the correct fix is to not dereference anything if metadata is
NULL, or make a fake placeholder one.
> This issue was reported by Coverity scan [1].
> [1] https://scan5.scan.coverity.com/#/project-view/63616/10063?selectedIssue=1636359
>
Is this supposed to be publicly accessible? It goes to a login page for me.
> Closes: https://scan5.scan.coverity.com/#/project-view/63616/10063?selectedIssue=1636359
> Signed-off-by: Nihar Chaithanya <niharchaithanya@gmail.com>
Probably needs a fixes: tag too for the commit that introduced the issue.
Thanks
James
> ---
> tools/perf/util/arm-spe.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c
> index dbf13f47879c..55827d8ce133 100644
> --- a/tools/perf/util/arm-spe.c
> +++ b/tools/perf/util/arm-spe.c
> @@ -1497,7 +1497,7 @@ int arm_spe_process_auxtrace_info(union perf_event *event,
>
> metadata = arm_spe__alloc_metadata(auxtrace_info, &metadata_ver,
> &nr_cpu);
> - if (!metadata && metadata_ver != 1) {
> + if (!metadata) {
> pr_err("Failed to parse Arm SPE metadata.\n");
> return -EINVAL;
> }
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-12-20 17:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-20 14:57 [PATCH] perf: arm-spe: Fix null-ptr-deref in arm_spe__alloc_metadata() Nihar Chaithanya
2024-12-20 17:16 ` James Clark
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).