linux/samples/ftrace
Haotian Zhang 6727b7618f samples/ftrace: Fix kthread_stop() on ERR_PTR in ftrace-direct-multi-modify
ftrace_direct_multi_init() assigns kthread_run()'s return value to
simple_tsk without an IS_ERR() check. When kthread_run() fails it
returns ERR_PTR(-ENOMEM), but init still returns 0, so the module loads
with simple_tsk holding an error pointer. On unload,
ftrace_direct_multi_exit() then passes that ERR_PTR to kthread_stop(),
leading to a null-pointer-dereference.

Check the return value of kthread_run() with IS_ERR(); on failure,
unregister the ftrace direct call and propagate the error code.

Link: https://patch.msgid.link/20260826015050.10772-1-vulab@iscas.ac.cn
Fixes: e1067a07cf ("ftrace/samples: Add module to test multi direct modify interface")
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2026-08-26 15:50:22 -04:00
..
ftrace-direct-modify.c samples/ftrace: Fix kthread_stop() on ERR_PTR in ftrace-direct-modify 2026-08-26 15:49:15 -04:00
ftrace-direct-multi-modify.c samples/ftrace: Fix kthread_stop() on ERR_PTR in ftrace-direct-multi-modify 2026-08-26 15:50:22 -04:00
ftrace-direct-multi.c samples/ftrace: Adjust LoongArch register restore order in direct calls 2025-12-31 15:19:25 +08:00
ftrace-direct-too.c samples/ftrace: Adjust LoongArch register restore order in direct calls 2025-12-31 15:19:25 +08:00
ftrace-direct.c samples/ftrace: Adjust LoongArch register restore order in direct calls 2025-12-31 15:19:25 +08:00
ftrace-ops.c samples/ftrace: Prevent division by zero when nr_function_calls is zero 2026-07-28 07:18:50 -04:00
Makefile ftrace: Add sample with custom ops 2023-01-25 10:31:23 -05:00
sample-trace-array.c tracing: samples: Initialize trace_array_printk() with the correct function 2025-05-12 13:07:22 -04:00
sample-trace-array.h tracing: Sample module to demonstrate kernel access to Ftrace instances. 2019-11-22 19:41:08 -05:00