aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_gred.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-03-29 05:11:39 -0400
committerDavid S. Miller <davem@davemloft.net>2012-04-01 18:11:37 -0400
commit1b34ec43c9b3de44a5420841ab293d1b2035a94c (patch)
tree8d6cf966c813e0e61001655179b5ef8e5f1b54b3 /net/sched/sch_gred.c
parent9360ffd1859720f6520cf59241909b74dae369d0 (diff)
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 <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_gred.c')
-rw-r--r--net/sched/sch_gred.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c
index 0b15236be7b6..55e3310edc94 100644
--- a/net/sched/sch_gred.c
+++ b/net/sched/sch_gred.c
@@ -521,14 +521,16 @@ static int gred_dump(struct Qdisc *sch, struct sk_buff *skb)
521 opts = nla_nest_start(skb, TCA_OPTIONS); 521 opts = nla_nest_start(skb, TCA_OPTIONS);
522 if (opts == NULL) 522 if (opts == NULL)
523 goto nla_put_failure; 523 goto nla_put_failure;
524 NLA_PUT(skb, TCA_GRED_DPS, sizeof(sopt), &sopt); 524 if (nla_put(skb, TCA_GRED_DPS, sizeof(sopt), &sopt))
525 goto nla_put_failure;
525 526
526 for (i = 0; i < MAX_DPs; i++) { 527 for (i = 0; i < MAX_DPs; i++) {
527 struct gred_sched_data *q = table->tab[i]; 528 struct gred_sched_data *q = table->tab[i];
528 529
529 max_p[i] = q ? q->parms.max_P : 0; 530 max_p[i] = q ? q->parms.max_P : 0;
530 } 531 }
531 NLA_PUT(skb, TCA_GRED_MAX_P, sizeof(max_p), max_p); 532 if (nla_put(skb, TCA_GRED_MAX_P, sizeof(max_p), max_p))
533 goto nla_put_failure;
532 534
533 parms = nla_nest_start(skb, TCA_GRED_PARMS); 535 parms = nla_nest_start(skb, TCA_GRED_PARMS);
534 if (parms == NULL) 536 if (parms == NULL)