x86/kprobes: Verify stack frame on kretprobe
authorMasami Hiramatsu <mhiramat@kernel.org>
Sat, 23 Feb 2019 16:49:52 +0000 (01:49 +0900)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 13 Aug 2019 11:39:11 +0000 (12:39 +0100)
commit2b487afcd06e39e9af6074f5ecb2e2025b84a95d
treeca3241884a86ea75c0616f79ba17d5daea8fae34
parentf96f1647cf6b35c0e13b3f6e0df9585cf88e6d2f
x86/kprobes: Verify stack frame on kretprobe

commit 3ff9c075cc767b3060bdac12da72fc94dd7da1b8 upstream.

Verify the stack frame pointer on kretprobe trampoline handler,
If the stack frame pointer does not match, it skips the wrong
entry and tries to find correct one.

This can happen if user puts the kretprobe on the function
which can be used in the path of ftrace user-function call.
Such functions should not be probed, so this adds a warning
message that reports which function should be blacklisted.

Tested-by: Andrea Righi <righi.andrea@gmail.com>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/155094059185.6137.15527904013362842072.stgit@devbox
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/kernel/kprobes/core.c
include/linux/kprobes.h