• Steven Rostedt (VMware)'s avatar
    ftrace: Check for null ret_stack on profile function graph entry function · a8f0f9e4
    Steven Rostedt (VMware) authored
    There's a small race when function graph shutsdown and the calling of the
    registered function graph entry callback. The callback must not reference
    the task's ret_stack without first checking that it is not NULL. Note, when
    a ret_stack is allocated for a task, it stays allocated until the task exits.
    The problem here, is that function_graph is shutdown, and a new task was
    created, which doesn't have its ret_stack allocated. But since some of the
    functions are still being traced, the callbacks can still be called.
    
    The normal function_graph code handles this, but starting with commit
    8861dd30 ("ftrace: Access ret_stack->subtime only in the function
    profiler") the profiler code references the ret_stack on function entry, but
    doesn't check if it is NULL first.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196611
    
    Cc: stable@vger.kernel.org
    Fixes: 8861dd30 ("ftrace: Access ret_stack->subtime only in the function profiler")
    Reported-by: lilydjwg@gmail.com
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    a8f0f9e4
ftrace.c 159 KB