bpf, sockmap: Don't let sock_map_{close,destroy,unhash} call itself
authorJakub Sitnicki <jakub@cloudflare.com>
Sat, 21 Jan 2023 12:41:43 +0000 (13:41 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Feb 2023 11:57:01 +0000 (12:57 +0100)
commitf312367f5246e04df564d341044286e9e37a97ba
tree9e9229f9202dd3c62555726b6a1762d9a253b721
parente909f5f2aa55a8f9aa6919cce08015cb0e8d4668
bpf, sockmap: Don't let sock_map_{close,destroy,unhash} call itself

[ Upstream commit 5b4a79ba65a1ab479903fff2e604865d229b70a9 ]

sock_map proto callbacks should never call themselves by design. Protect
against bugs like [1] and break out of the recursive loop to avoid a stack
overflow in favor of a resource leak.

[1] https://lore.kernel.org/all/00000000000073b14905ef2e7401@google.com/

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/r/20230113-sockmap-fix-v2-1-1e0ee7ac2f90@cloudflare.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/core/sock_map.c