diff options
| author | David S. Miller <[email protected]> | 2012-03-29 09:11:39 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2012-04-01 22:11:37 +0000 |
| commit | 1b34ec43c9b3de44a5420841ab293d1b2035a94c (patch) | |
| tree | 8d6cf966c813e0e61001655179b5ef8e5f1b54b3 /net/sched/ematch.c | |
| parent | wireless: Stop using NLA_PUT*(). (diff) | |
| download | kernel-1b34ec43c9b3de44a5420841ab293d1b2035a94c.tar.gz kernel-1b34ec43c9b3de44a5420841ab293d1b2035a94c.zip | |
pkt_sched: Stop using NLA_PUT*().
These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/sched/ematch.c')
| -rw-r--r-- | net/sched/ematch.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sched/ematch.c b/net/sched/ematch.c index 88d93eb92507..aca233c2b848 100644 --- a/net/sched/ematch.c +++ b/net/sched/ematch.c @@ -441,7 +441,8 @@ int tcf_em_tree_dump(struct sk_buff *skb, struct tcf_ematch_tree *tree, int tlv) if (top_start == NULL) goto nla_put_failure; - NLA_PUT(skb, TCA_EMATCH_TREE_HDR, sizeof(tree->hdr), &tree->hdr); + if (nla_put(skb, TCA_EMATCH_TREE_HDR, sizeof(tree->hdr), &tree->hdr)) + goto nla_put_failure; list_start = nla_nest_start(skb, TCA_EMATCH_TREE_LIST); if (list_start == NULL) @@ -457,7 +458,8 @@ int tcf_em_tree_dump(struct sk_buff *skb, struct tcf_ematch_tree *tree, int tlv) .flags = em->flags }; - NLA_PUT(skb, i + 1, sizeof(em_hdr), &em_hdr); + if (nla_put(skb, i + 1, sizeof(em_hdr), &em_hdr)) + goto nla_put_failure; if (em->ops && em->ops->dump) { if (em->ops->dump(skb, em) < 0) |
