Re: [PATCH bpf-next v1 1/2] ktls, sockmap: Fix missing uncharge operation

From: Cong Wang
Date: Sun May 04 2025 - 16:19:33 EST


On Fri, Apr 25, 2025 at 01:59:57PM +0800, Jiayuan Chen wrote:
> When we specify apply_bytes, we divide the msg into multiple segments,
> each with a length of 'send', and every time we send this part of the data
> using tcp_bpf_sendmsg_redir(), we use sk_msg_return_zero() to uncharge the
> memory of the specified 'send' size.
>
> However, if the first segment of data fails to send, for example, the
> peer's buffer is full, we need to release all of the msg. When releasing
> the msg, we haven't uncharged the memory of the subsequent segments.
>
> This modification does not make significant logical changes, but only
> fills in the missing uncharge places.
>
> This issue has existed all along, until it was exposed after we added the
> apply test in test_sockmap:
> commit 3448ad23b34e ("selftests/bpf: Add apply_bytes test to test_txmsg_redir_wait_sndmem in test_sockmap")
>
> Reported-by: Cong Wang <xiyou.wangcong@xxxxxxxxx>

Reviewed-by: Cong Wang <xiyou.wangcong@xxxxxxxxx>

Thanks!