On Tue, 26 Jan 2021 21:20:59 +0100
Oleg Nesterov <o...@redhat.com> wrote:

> On 01/26, Masami Hiramatsu wrote:
> >
> > > >
> > > > IOW, the "offset != 0" check removed by this patch is obviously wrong, 
> > > > right?
> > > >
> >
> > No, not wrong. Even offset != 0, if the symbol exists in the kernel,
> > kprobe_on_func_entry() will check it.
> 
> Yes, but unless I am totally confused... if kprobe_on_func_entry() returns 
> false,
> then trace_kprobe_create() should fail with BAD_RETPROBE even if offset == 0 ?

Yes, if kprobe_on_func_entry() returns false, register_kretprobe() also returns
an error.

-----
int register_kretprobe(struct kretprobe *rp)
{
        int ret = 0;
        struct kretprobe_instance *inst;
        int i;
        void *addr;

        if (!kprobe_on_func_entry(rp->kp.addr, rp->kp.symbol_name, 
rp->kp.offset))
                return -EINVAL;

-----

Thank you,

-- 
Masami Hiramatsu <mhira...@kernel.org>

Reply via email to