diff options
| author | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-12-28 01:24:47 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-01-22 21:40:29 +0100 |
| commit | aea1d19594e68d3beaf5cc11e4b5f5b9059abdb7 (patch) | |
| tree | d8fe0f995d1c9a56e0722e5ba587f73ec9eb37a8 /include/net | |
| parent | bdc6c893ba378a1b391ddbb4acea24047b6373d0 (diff) | |
netfilter: nf_conncount: move all list iterations under spinlock
commit 2f971a8f425545da52ca0e6bee81f5b1ea0ccc5f upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/net')
0 files changed, 0 insertions, 0 deletions
