net: sched: act_ct: fix possible refcount leak in tcf_ct_init()
[ Upstream commit6e23ec0ba9
] nf_ct_put need to be called to put the refcount got by tcf_ct_fill_params to avoid possible refcount leak when tcf_ct_flow_table_get fails. Fixes:c34b961a24
("net/sched: act_ct: Create nf flow table per zone") Signed-off-by: Hangyu Hua <hbh25y@gmail.com> Link: https://lore.kernel.org/r/20220923020046.8021-1-hbh25y@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
815381aeff
Коммит
e99c7a61d8
|
@ -1306,7 +1306,7 @@ static int tcf_ct_init(struct net *net, struct nlattr *nla,
|
|||
|
||||
err = tcf_ct_flow_table_get(params);
|
||||
if (err)
|
||||
goto cleanup;
|
||||
goto cleanup_params;
|
||||
|
||||
spin_lock_bh(&c->tcf_lock);
|
||||
goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch);
|
||||
|
@ -1321,6 +1321,9 @@ static int tcf_ct_init(struct net *net, struct nlattr *nla,
|
|||
|
||||
return res;
|
||||
|
||||
cleanup_params:
|
||||
if (params->tmpl)
|
||||
nf_ct_put(params->tmpl);
|
||||
cleanup:
|
||||
if (goto_ch)
|
||||
tcf_chain_put_by_act(goto_ch);
|
||||
|
|
Загрузка…
Ссылка в новой задаче