]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf header: Validate nr_domains when reading HEADER_CPU_DOMAIN_INFO
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 10 Apr 2026 22:08:53 +0000 (19:08 -0300)
committerNamhyung Kim <namhyung@kernel.org>
Tue, 14 Apr 2026 06:21:52 +0000 (23:21 -0700)
Further validate the HEADER_CPU_DOMAIN_INFO fields, this time checking
the nr_domains field.

Assisted-by: Claude Code:claude-opus-4-6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/header.c

index c6efddb70aee29049f6722efd630db8fa457f462..a2796b72adc4d90862c7a75018e97a85dc8e1c2c 100644 (file)
@@ -3731,6 +3731,12 @@ static int process_cpu_domain_info(struct feat_fd *ff, void *data __maybe_unused
                if (do_read_u32(ff, &nr_domains))
                        return -1;
 
+               if (nr_domains > max_sched_domains) {
+                       pr_err("Invalid HEADER_CPU_DOMAIN_INFO: nr_domains %u > max_sched_domains (%u)\n",
+                              nr_domains, max_sched_domains);
+                       return -1;
+               }
+
                cd_map[cpu]->nr_domains = nr_domains;
 
                cd_map[cpu]->domains = calloc(max_sched_domains, sizeof(*d_info));