mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
libperf cpumap: Fix perf_cpu_map__max for an empty/NULL map
Passing an empty map to perf_cpu_map__max triggered a SEGV. Explicitly test for the empty map. Reported-by: Ingo Molnar <mingo@kernel.org> Closes: https://lore.kernel.org/linux-perf-users/aSwt7yzFjVJCEmVp@gmail.com/ Tested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Thomas Richter <tmricht@linux.ibm.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
6744c0b182
commit
a0a4173631
|
|
@ -368,10 +368,12 @@ struct perf_cpu perf_cpu_map__max(const struct perf_cpu_map *map)
|
|||
.cpu = -1
|
||||
};
|
||||
|
||||
// cpu_map__trim_new() qsort()s it, cpu_map__default_new() sorts it as well.
|
||||
return __perf_cpu_map__nr(map) > 0
|
||||
? __perf_cpu_map__cpu(map, __perf_cpu_map__nr(map) - 1)
|
||||
: result;
|
||||
if (!map)
|
||||
return result;
|
||||
|
||||
// The CPUs are always sorted and nr is always > 0 as 0 length map is
|
||||
// encoded as NULL.
|
||||
return __perf_cpu_map__cpu(map, __perf_cpu_map__nr(map) - 1);
|
||||
}
|
||||
|
||||
/** Is 'b' a subset of 'a'. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user