diff options
author | Florian Westphal <fw@strlen.de> | 2022-01-07 05:03:22 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-01-09 23:30:13 +0100 |
commit | 719774377622bc4025d2a74f551b5dc2158c6c30 (patch) | |
tree | 8fbe7d875fbdaf8fcd909f15b230728c8c8b5baa /net/netfilter/nf_synproxy_core.c | |
parent | 613a0c67d12f33dcbeec2836f5fe60d05b4c18c0 (diff) | |
download | linux-719774377622bc4025d2a74f551b5dc2158c6c30.tar.gz |
netfilter: conntrack: convert to refcount_t api
Convert nf_conn reference counting from atomic_t to refcount_t based api.
refcount_t api provides more runtime sanity checks and will warn on
certain constructs, e.g. refcount_inc() on a zero reference count, which
usually indicates use-after-free.
For this reason template allocation is changed to init the refcount to
1, the subsequenct add operations are removed.
Likewise, init_conntrack() is changed to set the initial refcount to 1
instead refcount_inc().
This is safe because the new entry is not (yet) visible to other cpus.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nf_synproxy_core.c')
-rw-r--r-- | net/netfilter/nf_synproxy_core.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/net/netfilter/nf_synproxy_core.c b/net/netfilter/nf_synproxy_core.c index 3d6d49420db8bf..2dfc5dae065638 100644 --- a/net/netfilter/nf_synproxy_core.c +++ b/net/netfilter/nf_synproxy_core.c @@ -349,7 +349,6 @@ static int __net_init synproxy_net_init(struct net *net) goto err2; __set_bit(IPS_CONFIRMED_BIT, &ct->status); - nf_conntrack_get(&ct->ct_general); snet->tmpl = ct; snet->stats = alloc_percpu(struct synproxy_stats); |