[PATCH] jprobes: Ensure that the probepoint is at function entry

From: Naveen N. Rao
Date: Thu Jun 29 2017 - 10:57:27 EST


Similar to commit 90ec5e89e393c ("kretprobes: Ensure probe location is
at function entry"), ensure that the jprobe probepoint is at function
entry.

Signed-off-by: Naveen N. Rao <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
---
kernel/kprobes.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index adfe3b4cfe05..950018609339 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -1776,9 +1776,14 @@ int register_jprobes(struct jprobe **jps, int num)
jp = jps[i];
addr = arch_deref_entry_point(jp->entry);

- /* Verify probepoint is a function entry point */
+ /*
+ * Verify probepoint as well as the jprobe handler are
+ * function entry points.
+ */
if (kallsyms_lookup_size_offset(addr, NULL, &offset) &&
- offset == 0) {
+ offset == 0 &&
+ function_offset_within_entry(jp->kp.addr,
+ jp->kp.symbol_name, jp->kp.offset)) {
jp->kp.pre_handler = setjmp_pre_handler;
jp->kp.break_handler = longjmp_break_handler;
ret = register_kprobe(&jp->kp);
--
2.13.1