lkml.org 
[lkml]   [2010]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/5] tracing: Prevent kernel oops with corrupted buffer
    From: Steven Rostedt <srostedt@redhat.com>

    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: Steven Rostedt <rostedt@goodmis.org>
    ---
    kernel/trace/trace.c | 5 +++++
    1 files changed, 5 insertions(+), 0 deletions(-)

    diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
    index 0df1b0f..eac6875 100644
    --- a/kernel/trace/trace.c
    +++ b/kernel/trace/trace.c
    @@ -951,6 +951,11 @@ void trace_find_cmdline(int pid, char comm[])
    return;
    }

    + if (WARN_ON_ONCE(pid < 0)) {
    + strcpy(comm, "<XXX>");
    + return;
    + }
    +
    if (pid > PID_MAX_DEFAULT) {
    strcpy(comm, "<...>");
    return;
    --
    1.6.5



    \
     
     \ /
      Last update: 2010-01-26 23:21    [W:0.029 / U:1.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site