netfilter: ctnetlink: fix possible refcount leak in ctnetlink_create_conntrack()
[ Upstream commit ac4893980bbe79ce383daf9a0885666a30fe4c83 ]
nf_ct_put() needs to be called to put the refcount got by
nf_conntrack_find_get() to avoid refcount leak when
nf_conntrack_hash_check_insert() fails.
Fixes: 7d367e0668
("netfilter: ctnetlink: fix soft lockup when netlink adds new entries (v2)")
Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
fe65d6f26b
commit
5d0d38805d
@ -2086,12 +2086,15 @@ ctnetlink_create_conntrack(struct net *net,
|
|||||||
|
|
||||||
err = nf_conntrack_hash_check_insert(ct);
|
err = nf_conntrack_hash_check_insert(ct);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto err2;
|
goto err3;
|
||||||
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
return ct;
|
return ct;
|
||||||
|
|
||||||
|
err3:
|
||||||
|
if (ct->master)
|
||||||
|
nf_ct_put(ct->master);
|
||||||
err2:
|
err2:
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
err1:
|
err1:
|
||||||
|
Loading…
Reference in New Issue
Block a user