Re: [PATCH v3] tracing: precise log info for kretprobe addr err

From: Masami Hiramatsu
Date: Wed Jan 27 2021 - 01:17:19 EST


On Tue, 26 Jan 2021 21:20:59 +0100
Oleg Nesterov <oleg@xxxxxxxxxx> 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 <mhiramat@xxxxxxxxxx>