On Tue, Oct 25, 2022 at 04:06:28PM +0800, Chuang Wang wrote: > When register_fprobe_ips returns an error, bpf_link_cleanup just cleans > up bpf_link_primer's resources and forgets to clean up > bpf_kprobe_multi_link, addrs, cookies. > > So, by adding 'goto error', this ensures that all resources are cleaned > up. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 0dcac2725406 ("bpf: Add multi kprobe link") > Signed-off-by: Chuang Wang <nashuiliang@xxxxxxxxx> > --- > kernel/trace/bpf_trace.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > index 1ed08967fb97..5b806ef20857 100644 > --- a/kernel/trace/bpf_trace.c > +++ b/kernel/trace/bpf_trace.c > @@ -2778,7 +2778,7 @@ int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr > err = register_fprobe_ips(&link->fp, addrs, cnt); > if (err) { > bpf_link_cleanup(&link_primer); > - return err; > + goto error; that should be taken care of bpf_kprobe_multi_link_dealloc, through the fput path in bpf_link_cleanup do you see any related memory leak like report in kmemleak? jirka > } > > return bpf_link_settle(&link_primer); > -- > 2.34.1 >