diff options
author | Masami Hiramatsu <mhiramat@kernel.org> | 2019-02-24 01:49:52 +0900 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-04-19 14:26:05 +0200 |
commit | 3ff9c075cc767b3060bdac12da72fc94dd7da1b8 (patch) | |
tree | 68514aa6c9c1556f490fc7e729562f2b18a593f1 /include/linux/kprobes.h | |
parent | 3fe3331bb285700ab2253dbb07f8e478fcea2f1b (diff) | |
download | lwn-3ff9c075cc767b3060bdac12da72fc94dd7da1b8.tar.gz lwn-3ff9c075cc767b3060bdac12da72fc94dd7da1b8.zip |
x86/kprobes: Verify stack frame on kretprobe
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>
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/155094059185.6137.15527904013362842072.stgit@devbox
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/kprobes.h')
-rw-r--r-- | include/linux/kprobes.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 201f0f2683f2..9a897256e481 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h @@ -173,6 +173,7 @@ struct kretprobe_instance { struct kretprobe *rp; kprobe_opcode_t *ret_addr; struct task_struct *task; + void *fp; char data[0]; }; |