path: root/net/sched/act_ct.c
diff options
authorFlorian Westphal <>2022-01-07 05:03:22 +0100
committerPablo Neira Ayuso <>2022-01-09 23:30:13 +0100
commit719774377622bc4025d2a74f551b5dc2158c6c30 (patch)
tree8fbe7d875fbdaf8fcd909f15b230728c8c8b5baa /net/sched/act_ct.c
parent613a0c67d12f33dcbeec2836f5fe60d05b4c18c0 (diff)
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 <> Signed-off-by: Pablo Neira Ayuso <>
Diffstat (limited to 'net/sched/act_ct.c')
1 files changed, 0 insertions, 1 deletions
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index ab1810f2e660..3fa904cf8f27 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -1228,7 +1228,6 @@ static int tcf_ct_fill_params(struct net *net,
return -ENOMEM;
__set_bit(IPS_CONFIRMED_BIT, &tmpl->status);
- nf_conntrack_get(&tmpl->ct_general);
p->tmpl = tmpl;
return 0;