Skip to content

bpf: Fix socket leaks around connect(AF_UNSPEC)+listen() - #8594

Open
kernel-patches-daemon-bpf-rc[bot] wants to merge 2 commits into
bpf_basefrom
series/1139204=>bpf
Open

bpf: Fix socket leaks around connect(AF_UNSPEC)+listen()#8594
kernel-patches-daemon-bpf-rc[bot] wants to merge 2 commits into
bpf_basefrom
series/1139204=>bpf

Conversation

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown

Pull request for series with
subject: bpf: Fix socket leaks around connect(AF_UNSPEC)+listen()
version: 2
url: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: e5fd3f5
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: 7cd8645
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: 7cd8645
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: 31a420a
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: 31a420a
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: 7a3c028
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

mmhal added 2 commits August 7, 2026 08:36
__bpf_sk_lookup() and bpf_sk_lookup() duplicate the same sk_to_full_sk()
reqsk-to-listener upgrade. Extract it into a helper.

Leave the currently unreachable WARN_ONCE as a defensive assert.

No functional change.

Signed-off-by: Michal Luczaj <mhal@rbox.co>
Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com>
Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
Lookup helpers gate whether to acquire a socket reference on
sk_is_refcounted(), a check re-evaluated at release. An established socket
refcounted at acquire time can gain SOCK_RCU_FREE via
connect(AF_UNSPEC)+listen() before release runs; the release-side re-check
then reads sk_is_refcounted() == false and skips the put. The reference
leaks.

Make acquire and release unconditional and symmetric: always take a
reference, always put it. Adapt sk_select_reuseport().

Fixes: 6acc9b4 ("bpf: Add helper to retrieve socket in BPF")
Fixes: 64d8529 ("bpf: Allow bpf_map_lookup_elem for SOCKMAP and SOCKHASH")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Closes: https://lore.kernel.org/bpf/20260701235552.2B0AA1F00A3F@smtp.kernel.org/
Signed-off-by: Michal Luczaj <mhal@rbox.co>
Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com>
@kernel-patches-daemon-bpf-rc

Copy link
Copy Markdown
Author

Upstream branch: a13307e
series: https://patchwork.kernel.org/project/netdevbpf/list/?series=1139204
version: 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant