From dc308b14e3472f5521986de6080a0a56a4f0d6b0 Mon Sep 17 00:00:00 2001 From: Vyacheslav Cherkashin Date: Tue, 5 Feb 2013 18:23:02 +0400 Subject: [PATCH] FIX func 'kretprobe_assert' --- kprobe/dbi_kprobes.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/kprobe/dbi_kprobes.c b/kprobe/dbi_kprobes.c index 995ca6d..880a0c8 100644 --- a/kprobe/dbi_kprobes.c +++ b/kprobe/dbi_kprobes.c @@ -88,9 +88,25 @@ atomic_t kprobe_count; void kretprobe_assert (struct kretprobe_instance *ri, unsigned long orig_ret_address, unsigned long trampoline_address) { - if (!orig_ret_address || (orig_ret_address == trampoline_address)) + if (!orig_ret_address || (orig_ret_address == trampoline_address)) { + struct task_struct *task; + if (ri == NULL) { + panic ("kretprobe BUG!: ri = NULL\n"); + } + + task = ri->task; + + if (task == NULL) { + panic ("kretprobe BUG!: task = NULL\n"); + } + + if (ri->rp == NULL) { + panic ("kretprobe BUG!: ri->rp = NULL\n"); + } + panic ("kretprobe BUG!: Processing kretprobe %p @ %p (%d/%d - %s)\n", - ri->rp, ri->rp->kp.addr, ri->task->tgid, ri->task->pid, ri->task->comm); + ri->rp, ri->rp->kp.addr, ri->task->tgid, ri->task->pid, ri->task->comm); + } } -- 2.7.4