mirror of
https://github.com/torvalds/linux.git
synced 2026-09-14 16:10:02 +02:00
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:
|
||
|---|---|---|
| .. | ||
| ftrace-direct-modify.c | ||
| ftrace-direct-multi-modify.c | ||
| ftrace-direct-multi.c | ||
| ftrace-direct-too.c | ||
| ftrace-direct.c | ||
| ftrace-ops.c | ||
| Makefile | ||
| sample-trace-array.c | ||
| sample-trace-array.h | ||