Re: [PATCH bpf-next 2/4] LoongArch: BPF: Fix memory leak in bpf_jit_free
Huacai Chen <[email protected]> Fri, 24 Jul 2026 16:15:55 +0800
| Newsgroups | dev.linux.lists.loongarch,org.kernel.vger.bpf,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAAhV-H7CQVz45B0jFQpyo-A1-DHR+3pQ2-aRcquQ4Ak=y_+kKA@mail.gmail.com> |
On Fri, Jul 24, 2026 at 4:05=E2=80=AFPM Tiezhu Yang <[email protected]= > wrote: > > Cc: Huacai Chen <[email protected]> [email protected] > > On 2026/7/22 =E4=B8=8B=E5=8D=887:27, Pu Lehui wrote: > > From: Pu Lehui <[email protected]> > > > > When bpf_int_jit_compile() is called for subprograms, it returns early > > during the first pass (!prog->is_func || extra_pass is false), keeping > > ctx->offset alive for the subsequent extra pass. > > > > If JIT compilation fails for a later subprogram, the BPF core aborts an= d > > calls bpf_jit_free() to clean up the first subprogram. However, > > bpf_jit_free() fails to free jit_data->ctx.offset, which causes a memor= y > > leak of the JIT context offsets array. > > > > Fix this by adding the missing kvfree(jit_data->ctx.offset) in > > bpf_jit_free(). > > > > Fixes: 4ab17e762b34 ("LoongArch: BPF: Use BPF prog pack allocator") > > Reported-by: Sashiko <[email protected]> > > Signed-off-by: Pu Lehui <[email protected]> > > --- > > arch/loongarch/net/bpf_jit.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/loongarch/net/bpf_jit.c b/arch/loongarch/net/bpf_jit.= c > > index 2738b4db1165..3d3ed1677d01 100644 > > --- a/arch/loongarch/net/bpf_jit.c > > +++ b/arch/loongarch/net/bpf_jit.c > > @@ -2361,6 +2361,7 @@ void bpf_jit_free(struct bpf_prog *prog) > > */ > > if (jit_data) { > > bpf_jit_binary_pack_finalize(jit_data->ro_header,= jit_data->header); > > + kvfree(jit_data->ctx.offset); > > kfree(jit_data); > > } > > hdr =3D bpf_jit_binary_pack_hdr(prog); > > > > Here is the link: > https://lore.kernel.org/bpf/20260722112754.1615201-3-pulehui@huaweicloud.= com/ > > Acked-by: Tiezhu Yang <[email protected]> Applied, thanks. Huacai > > Thanks, > Tiezhu > >