]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ftrace: Fix regression with module command in stack_trace_filter
authorguoweikang <guoweikang.kernel@gmail.com>
Wed, 20 Nov 2024 05:27:49 +0000 (13:27 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:47:37 +0000 (19:47 +0100)
commit 45af52e7d3b8560f21d139b3759735eead8b1653 upstream.

When executing the following command:

    # echo "write*:mod:ext3" > /sys/kernel/tracing/stack_trace_filter

The current mod command causes a null pointer dereference. While commit
0f17976568b3f ("ftrace: Fix regression with module command in stack_trace_filter")
has addressed part of the issue, it left a corner case unhandled, which still
results in a kernel crash.

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/20241120052750.275463-1-guoweikang.kernel@gmail.com
Fixes: 04ec7bb642b77 ("tracing: Have the trace_array hold the list of registered func probes");
Signed-off-by: guoweikang <guoweikang.kernel@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/trace/ftrace.c

index 36182e7e0cd75fd6eead89b7b20e41ec1355806f..c6d57d604b012f5daea178bfc4df9a8759fc7312 100644 (file)
@@ -4311,6 +4311,9 @@ ftrace_mod_callback(struct trace_array *tr, struct ftrace_hash *hash,
        char *func;
        int ret;
 
+       if (!tr)
+               return -ENODEV;
+
        /* match_records() modifies func, and we need the original */
        func = kstrdup(func_orig, GFP_KERNEL);
        if (!func)