diff options
author | 2024-06-24 23:10:59 +0300 | |
---|---|---|
committer | 2024-07-04 16:00:22 +0200 | |
commit | dbc48c8f41c208082cfa95e973560134489e3309 (patch) | |
tree | 7c72f4f6a6c3d7161faf6b81d0bd369d5872341e /tools/perf/scripts/python | |
parent | perf: Fix perf_aux_size() for greater-than 32-bit size (diff) | |
download | wireguard-linux-dbc48c8f41c208082cfa95e973560134489e3309.tar.xz wireguard-linux-dbc48c8f41c208082cfa95e973560134489e3309.zip |
perf: Prevent passing zero nr_pages to rb_alloc_aux()
nr_pages is unsigned long but gets passed to rb_alloc_aux() as an int,
and is stored as an int.
Only power-of-2 values are accepted, so if nr_pages is a 64_bit value, it
will be passed to rb_alloc_aux() as zero.
That is not ideal because:
1. the value is incorrect
2. rb_alloc_aux() is at risk of misbehaving, although it manages to
return -ENOMEM in that case, it is a result of passing zero to get_order()
even though the get_order() result is documented to be undefined in that
case.
Fix by simply validating the maximum supported value in the first place.
Use -ENOMEM error code for consistency with the current error code that
is returned in that case.
Fixes: 45bfb2e50471 ("perf: Add AUX area to ring buffer for raw data streams")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20240624201101.60186-6-adrian.hunter@intel.com
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions