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)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 25 Jan 2023 05:32:55 +0000 (21:32 -0800)
commit5b4a79ba65a1ab479903fff2e604865d229b70a9
treea66f61b356c2708795f7a336ac4a5dfe5dc1239c
parent74bc3a5acc82f020d2e126f56c535d02d1e74e37
bpf, sockmap: Don't let sock_map_{close,destroy,unhash} call itself

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>
net/core/sock_map.c