diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-12-28 01:24:47 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-12-29 02:45:21 +0100 |
commit | 2f971a8f425545da52ca0e6bee81f5b1ea0ccc5f (patch) | |
tree | 0b62fd460a49546309f6684ef2a6d09547b50862 /net/ipv6/xfrm6_policy.c | |
parent | df4a902509766897f7371fdfa4c3bf8bc321b55d (diff) |
netfilter: nf_conncount: move all list iterations under spinlock
Two CPUs may race to remove a connection from the list, the existing
conn->dead will result in a use-after-free. Use the per-list spinlock to
protect list iterations.
As all accesses to the list now happen while holding the per-list lock,
we no longer need to delay free operations with rcu.
Joint work with Florian.
Fixes: 5c789e131cbb9 ("netfilter: nf_conncount: Add list lock and gc worker, and RCU for init tree search")
Reviewed-by: Shawn Bohrer <sbohrer@cloudflare.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/ipv6/xfrm6_policy.c')
0 files changed, 0 insertions, 0 deletions