Commit 74bf4076 authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt

tracing: Prevent kernel oops with corrupted buffer

If the contents of the ftrace ring buffer gets corrupted and the trace
file is read, it could create a kernel oops (usualy just killing the user
task thread). This is caused by the checking of the pid in the buffer.
If the pid is negative, it still references the cmdline cache array,
which could point to an invalid address.

The simple fix is to test for negative PIDs.
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent f6760aa0
...@@ -951,6 +951,11 @@ void trace_find_cmdline(int pid, char comm[]) ...@@ -951,6 +951,11 @@ void trace_find_cmdline(int pid, char comm[])
return; return;
} }
if (WARN_ON_ONCE(pid < 0)) {
strcpy(comm, "<XXX>");
return;
}
if (pid > PID_MAX_DEFAULT) { if (pid > PID_MAX_DEFAULT) {
strcpy(comm, "<...>"); strcpy(comm, "<...>");
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment