[PW_SID:1123455] riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()#2243
[PW_SID:1123455] riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()#2243linux-riscv-bot wants to merge 3 commits into
Conversation
A NULL pointer dereference issue is noticed in riscv's machine_kexec_prepare(),
where image->segment[i].buf might be NULL and copied unchecked.
The NULL buf comes from ima_add_kexec_buffer(), where kbuf is added by
kexec_add_buffer(), but kbuf.buffer is NULL, then it is copied without
a check in machine_kexec_prepare():
kexec_file_load
-> kimage_file_alloc_init()
-> kimage_file_prepare_segments()
-> ima_add_kexec_buffer()
-> kexec_add_buffer()
-> machine_kexec_prepare()
-> memcpy()
Address this by adding a check before the data copy attempt.
Fixes: b7fb4d7 ("RISC-V: use memcpy for kexec_file mode")
Cc: stable@vger.kernel.org
Closes: https://lore.kernel.org/kexec/CAO7dBbVftLUhd2qrh7hmijTB3PEPfZAhykCGqEfrPoOcSrrj-w@mail.gmail.com/
Acked-by: Baoquan He <bhe@redhat.com>
Acked-by: Pratyush Yadav <pratyush@kernel.org>
Reviewed-by: Nutty Liu <nutty.liu@hotmail.com>
Signed-off-by: Tao Liu <ltao@redhat.com>
Link: https://patch.msgid.link/20260705232706.30265-2-ltao@redhat.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
When dump_backtrace() is called with a NULL task argument, and the call stack contains functions that are being traced, walk_stackframe() eventually calls ftrace_graph_ret_addr() with the NULL task pointer, which results in a NULL pointer dereference when accessing task->curr_ret_stack. Fix this by assigning the task pointer to the current task in walk_stackframe() when it is NULL, keeping the behavior consistent with other architectures. Fixes: ecbf894 ("riscv: Fix ftrace_graph_ret_addr() to use the correct task pointer") Reviewed-by: Shengming Hu <hu.shengming@zte.com.cn> Reviewed-by: Rui Gao <gao.rui@zte.com.cn> Reviewed-by: Luo Haiyang <luo.haiyang@zte.com.cn> Reviewed-by: Run Zhang <zhang.run@zte.com.cn> Signed-off-by: Anmeng Zhang <zhang.anmeng@zte.com.cn> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
|
Patch 1: "riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()" |
f54dc6c to
f61148d
Compare
56b6f30 to
8ca72ef
Compare
PR for series 1123455 applied to workflow__riscv__fixes
Name: riscv: stacktrace: Fix NULL task pointer in ftrace_graph_ret_addr()
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1123455
Version: 1