From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx> The check in tracecmd_read_cpu_first() checks: if (cpus > handle->cpus) When that should be >=, as cpus is the number of CPUs in the array, and not the last CPU. This wasn't noticed in tests because it only warns and does not crash. Fixes: 3869d1529a99 ("trace-cmd library: Do not read CPU greater than CPUs registered") Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx> --- lib/trace-cmd/trace-input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c index 313534d09e86..643dd807c575 100644 --- a/lib/trace-cmd/trace-input.c +++ b/lib/trace-cmd/trace-input.c @@ -2028,7 +2028,7 @@ tracecmd_read_cpu_first(struct tracecmd_input *handle, int cpu) unsigned long long page_offset; int ret; - if (cpu > handle->cpus) + if (cpu >= handle->cpus) return NULL; page_offset = calc_page_offset(handle, handle->cpu_data[cpu].file_offset); -- 2.35.1