Re: [PATCH bpf] bpf: cpumap: Fix memory leak in cpu_map_update_elem

From: Jesper Dangaard Brouer
Date: Tue Jul 11 2023 - 12:07:33 EST



On 11/07/2023 13.58, Pu Lehui wrote:
From: Pu Lehui <pulehui@xxxxxxxxxx>

Syzkaller reported a memory leak as follows:

[...]>
In the cpu_map_update_elem flow, when kthread_stop is called before
calling the threadfn of rcpu->kthread, since the KTHREAD_SHOULD_STOP bit
of kthread has been set by kthread_stop, the threadfn of rcpu->kthread
will never be executed, and rcpu->refcnt will never be 0, which will
lead to the allocated rcpu, rcpu->queue and rcpu->queue->queue cannot be
released.

Calling kthread_stop before executing kthread's threadfn will return
-EINTR. We can complete the release of memory resources in this state.

Fixes: 6710e1126934 ("bpf: introduce new bpf cpu map type BPF_MAP_TYPE_CPUMAP")
Signed-off-by: Pu Lehui <pulehui@xxxxxxxxxx>

LGTM, thanks for fixing this.

Acked-by: Jesper Dangaard Brouer <hawk@xxxxxxxxxx>