ip6mr: Do not use RTA_PUT() macros
authorThomas Graf <tgraf@suug.ch>
Tue, 26 Jun 2012 23:36:14 +0000 (23:36 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Jun 2012 22:36:44 +0000 (15:36 -0700)
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6mr.c

index 461e47c8e95620456e83710eaf99643c1382c8fc..4532973f0dd4fc8fd3467a81cc0a2ce0581c72f1 100644 (file)
@@ -2104,8 +2104,9 @@ static int __ip6mr_fill_mroute(struct mr6_table *mrt, struct sk_buff *skb,
        if (c->mf6c_parent >= MAXMIFS)
                return -ENOENT;
 
-       if (MIF_EXISTS(mrt, c->mf6c_parent))
-               RTA_PUT(skb, RTA_IIF, 4, &mrt->vif6_table[c->mf6c_parent].dev->ifindex);
+       if (MIF_EXISTS(mrt, c->mf6c_parent) &&
+           nla_put_u32(skb, RTA_IIF, mrt->vif6_table[c->mf6c_parent].dev->ifindex) < 0)
+               return -EMSGSIZE;
 
        mp_head = (struct rtattr *)skb_put(skb, RTA_LENGTH(0));