Message ID | 1584528633-20177-1-git-send-email-paulb@mellanox.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] net/sched: act_ct: Fix leak of ct zone template on replace | expand |
From: Paul Blakey <paulb@mellanox.com> Date: Wed, 18 Mar 2020 12:50:33 +0200 > Currently, on replace, the previous action instance params > is swapped with a newly allocated params. The old params is > only freed (via kfree_rcu), without releasing the allocated > ct zone template related to it. > > Call tcf_ct_params_free (via call_rcu) for the old params, > so it will release it. > > Fixes: b57dc7c13ea9 ("net/sched: Introduce action ct") > Signed-off-by: Paul Blakey <paulb@mellanox.com> Applied and queued up for -stable.
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c index f685c0d..41114b4 100644 --- a/net/sched/act_ct.c +++ b/net/sched/act_ct.c @@ -739,7 +739,7 @@ static int tcf_ct_init(struct net *net, struct nlattr *nla, if (goto_ch) tcf_chain_put_by_act(goto_ch); if (params) - kfree_rcu(params, rcu); + call_rcu(¶ms->rcu, tcf_ct_params_free); if (res == ACT_P_CREATED) tcf_idr_insert(tn, *a);
Currently, on replace, the previous action instance params is swapped with a newly allocated params. The old params is only freed (via kfree_rcu), without releasing the allocated ct zone template related to it. Call tcf_ct_params_free (via call_rcu) for the old params, so it will release it. Fixes: b57dc7c13ea9 ("net/sched: Introduce action ct") Signed-off-by: Paul Blakey <paulb@mellanox.com> --- net/sched/act_ct.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)