Skip to content

Commit beecfd6

Browse files
mrutland-armctmarinas
authored andcommitted
arm64: stacktrace: Check kretprobe_find_ret_addr() return value
If kretprobe_find_ret_addr() fails to find the original return address, it returns 0. Check for this case so that a reliable stacktrace won't silently ignore it. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Cc: Andrea della Porta <andrea.porta@suse.com> Cc: Breno Leitao <leitao@debian.org> Cc: Josh Poimboeuf <jpoimboe@kernel.org> Cc: Miroslav Benes <mbenes@suse.cz> Cc: Petr Mladek <pmladek@suse.com> Cc: Song Liu <song@kernel.org> Cc: Will Deacon <will@kernel.org> Reviewed-and-tested-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20250521111000.2237470-2-mark.rutland@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
1 parent 91b89a6 commit beecfd6

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

arch/arm64/kernel/stacktrace.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ kunwind_recover_return_address(struct kunwind_state *state)
152152
orig_pc = kretprobe_find_ret_addr(state->task,
153153
(void *)state->common.fp,
154154
&state->kr_cur);
155+
if (!orig_pc)
156+
return -EINVAL;
155157
state->common.pc = orig_pc;
156158
state->flags.kretprobe = 1;
157159
}

0 commit comments

Comments
 (0)