diff options
Diffstat (limited to 'net/sched/em_meta.c')
-rw-r--r-- | net/sched/em_meta.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/net/sched/em_meta.c b/net/sched/em_meta.c index 1363bf14e61b..4790c696cbce 100644 --- a/net/sched/em_meta.c +++ b/net/sched/em_meta.c | |||
@@ -585,8 +585,9 @@ static void meta_var_apply_extras(struct meta_value *v, | |||
585 | 585 | ||
586 | static int meta_var_dump(struct sk_buff *skb, struct meta_value *v, int tlv) | 586 | static int meta_var_dump(struct sk_buff *skb, struct meta_value *v, int tlv) |
587 | { | 587 | { |
588 | if (v->val && v->len) | 588 | if (v->val && v->len && |
589 | NLA_PUT(skb, tlv, v->len, (void *) v->val); | 589 | nla_put(skb, tlv, v->len, (void *) v->val)) |
590 | goto nla_put_failure; | ||
590 | return 0; | 591 | return 0; |
591 | 592 | ||
592 | nla_put_failure: | 593 | nla_put_failure: |
@@ -636,10 +637,13 @@ static void meta_int_apply_extras(struct meta_value *v, | |||
636 | 637 | ||
637 | static int meta_int_dump(struct sk_buff *skb, struct meta_value *v, int tlv) | 638 | static int meta_int_dump(struct sk_buff *skb, struct meta_value *v, int tlv) |
638 | { | 639 | { |
639 | if (v->len == sizeof(unsigned long)) | 640 | if (v->len == sizeof(unsigned long)) { |
640 | NLA_PUT(skb, tlv, sizeof(unsigned long), &v->val); | 641 | if (nla_put(skb, tlv, sizeof(unsigned long), &v->val)) |
641 | else if (v->len == sizeof(u32)) | 642 | goto nla_put_failure; |
642 | NLA_PUT_U32(skb, tlv, v->val); | 643 | } else if (v->len == sizeof(u32)) { |
644 | if (nla_put_u32(skb, tlv, v->val)) | ||
645 | goto nla_put_failure; | ||
646 | } | ||
643 | 647 | ||
644 | return 0; | 648 | return 0; |
645 | 649 | ||
@@ -831,7 +835,8 @@ static int em_meta_dump(struct sk_buff *skb, struct tcf_ematch *em) | |||
831 | memcpy(&hdr.left, &meta->lvalue.hdr, sizeof(hdr.left)); | 835 | memcpy(&hdr.left, &meta->lvalue.hdr, sizeof(hdr.left)); |
832 | memcpy(&hdr.right, &meta->rvalue.hdr, sizeof(hdr.right)); | 836 | memcpy(&hdr.right, &meta->rvalue.hdr, sizeof(hdr.right)); |
833 | 837 | ||
834 | NLA_PUT(skb, TCA_EM_META_HDR, sizeof(hdr), &hdr); | 838 | if (nla_put(skb, TCA_EM_META_HDR, sizeof(hdr), &hdr)) |
839 | goto nla_put_failure; | ||
835 | 840 | ||
836 | ops = meta_type_ops(&meta->lvalue); | 841 | ops = meta_type_ops(&meta->lvalue); |
837 | if (ops->dump(skb, &meta->lvalue, TCA_EM_META_LVALUE) < 0 || | 842 | if (ops->dump(skb, &meta->lvalue, TCA_EM_META_LVALUE) < 0 || |