From: Davide Caratti Date: Thu, 15 Feb 2018 14:50:57 +0000 (+0100) Subject: net: sched: fix unbalance in the error path of tca_action_flush() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=66dede2d6b2340235ca212532275446d7bb010fe;p=openwrt%2Fstaging%2Fblogic.git net: sched: fix unbalance in the error path of tca_action_flush() When tca_action_flush() calls the action walk() and gets an error, a successful call to nla_nest_start() is not followed by a call to nla_nest_cancel(). It's harmless, as the skb is freed in the error path - but it's worth to fix this unbalance. Signed-off-by: Davide Caratti Signed-off-by: David S. Miller --- diff --git a/net/sched/act_api.c b/net/sched/act_api.c index 4886ea4a7d6e..624995564e5a 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -938,8 +938,10 @@ static int tca_action_flush(struct net *net, struct nlattr *nla, goto out_module_put; err = ops->walk(net, skb, &dcb, RTM_DELACTION, ops); - if (err <= 0) + if (err <= 0) { + nla_nest_cancel(skb, nest); goto out_module_put; + } nla_nest_end(skb, nest);