Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-2.6-microblaze.git] / net / ipv4 / devinet.c
index 6e447ff..7ba2196 100644 (file)
@@ -1266,17 +1266,15 @@ static int inet_fill_ifaddr(struct sk_buff *skb, struct in_ifaddr *ifa,
        ifm->ifa_scope = ifa->ifa_scope;
        ifm->ifa_index = ifa->ifa_dev->dev->ifindex;
 
-       if (ifa->ifa_address)
-               NLA_PUT_BE32(skb, IFA_ADDRESS, ifa->ifa_address);
-
-       if (ifa->ifa_local)
-               NLA_PUT_BE32(skb, IFA_LOCAL, ifa->ifa_local);
-
-       if (ifa->ifa_broadcast)
-               NLA_PUT_BE32(skb, IFA_BROADCAST, ifa->ifa_broadcast);
-
-       if (ifa->ifa_label[0])
-               NLA_PUT_STRING(skb, IFA_LABEL, ifa->ifa_label);
+       if ((ifa->ifa_address &&
+            nla_put_be32(skb, IFA_ADDRESS, ifa->ifa_address)) ||
+           (ifa->ifa_local &&
+            nla_put_be32(skb, IFA_LOCAL, ifa->ifa_local)) ||
+           (ifa->ifa_broadcast &&
+            nla_put_be32(skb, IFA_BROADCAST, ifa->ifa_broadcast)) ||
+           (ifa->ifa_label[0] &&
+            nla_put_string(skb, IFA_LABEL, ifa->ifa_label)))
+               goto nla_put_failure;
 
        return nlmsg_end(skb, nlh);