diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 4344381664cce83d22bd82ac10cc786728b4a745..a724d7348b07a0a3cba6d324d435d49314e679a4 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -1880,6 +1880,9 @@ int register_kretprobe(struct kretprobe *rp) int i; void *addr; + if ((ssize_t)rp->data_size < 0) + return -EINVAL; + if (!kprobe_on_func_entry(rp->kp.addr, rp->kp.symbol_name, rp->kp.offset)) return -EINVAL;