mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 16:14:13 +08:00
net_sched: cancel nest attribute on failure in tcf_exts_dump()
Like other places, we need to cancel the nest attribute after we start. Fortunately the netlink message will not be sent on failure, so it's not a big problem at all. Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: Cong Wang <cwang@twopensource.com> Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4bbe3f5c71
commit
9cc63db5e1
@ -561,13 +561,14 @@ EXPORT_SYMBOL(tcf_exts_change);
|
||||
int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts)
|
||||
{
|
||||
#ifdef CONFIG_NET_CLS_ACT
|
||||
struct nlattr *nest;
|
||||
|
||||
if (exts->action && !list_empty(&exts->actions)) {
|
||||
/*
|
||||
* again for backward compatible mode - we want
|
||||
* to work with both old and new modes of entering
|
||||
* tc data even if iproute2 was newer - jhs
|
||||
*/
|
||||
struct nlattr *nest;
|
||||
if (exts->type != TCA_OLD_COMPAT) {
|
||||
nest = nla_nest_start(skb, exts->action);
|
||||
if (nest == NULL)
|
||||
@ -585,10 +586,14 @@ int tcf_exts_dump(struct sk_buff *skb, struct tcf_exts *exts)
|
||||
nla_nest_end(skb, nest);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
nla_put_failure: __attribute__ ((unused))
|
||||
|
||||
nla_put_failure:
|
||||
nla_nest_cancel(skb, nest);
|
||||
return -1;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL(tcf_exts_dump);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user