On Tue, Sep 10, 2024 at 5:53 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote: > > As reported by Andrii we don't currently recognize uretprobe.multi.s > programs as return probes due to using (wrong) strcmp function. > > Using strncmp instead to match uretprobe.multi as prefix. > > Tests are passing, because the return program was executed > as entry program and all counts were incremented properly. > > Reported-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > Closes: https://lore.kernel.org/bpf/CAEf4BzYpH_2f0eHwQG205Q_4hewbtC9OrVSA-_jn6ysz53QbBg@xxxxxxxxxxxxxx/ > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > --- > tools/lib/bpf/libbpf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index 4f29e06c2641..08e110392516 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -11688,7 +11688,7 @@ static int attach_uprobe_multi(const struct bpf_program *prog, long cookie, stru > ret = 0; > break; > case 3: > - opts.retprobe = strcmp(probe_type, "uretprobe.multi") == 0; > + opts.retprobe = strncmp(probe_type, "uretprobe.multi", sizeof("uretprobe.multi") - 1) == 0; I replaced this with `opts.retprobe = str_has_pfx(probe_type, "uretprobe.multi");`, less duplication > *link = bpf_program__attach_uprobe_multi(prog, -1, binary_path, func_name, &opts); > ret = libbpf_get_error(*link); > break; > -- > 2.46.0 >