diff options
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index f7c8bbeb27b7..8975d9501d50 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -489,7 +489,8 @@ static int inet6_netconf_fill_devconf(struct sk_buff *skb, int ifindex, | |||
489 | nla_put_s32(skb, NETCONFA_PROXY_NEIGH, devconf->proxy_ndp) < 0) | 489 | nla_put_s32(skb, NETCONFA_PROXY_NEIGH, devconf->proxy_ndp) < 0) |
490 | goto nla_put_failure; | 490 | goto nla_put_failure; |
491 | 491 | ||
492 | return nlmsg_end(skb, nlh); | 492 | nlmsg_end(skb, nlh); |
493 | return 0; | ||
493 | 494 | ||
494 | nla_put_failure: | 495 | nla_put_failure: |
495 | nlmsg_cancel(skb, nlh); | 496 | nlmsg_cancel(skb, nlh); |
@@ -619,7 +620,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb, | |||
619 | cb->nlh->nlmsg_seq, | 620 | cb->nlh->nlmsg_seq, |
620 | RTM_NEWNETCONF, | 621 | RTM_NEWNETCONF, |
621 | NLM_F_MULTI, | 622 | NLM_F_MULTI, |
622 | -1) <= 0) { | 623 | -1) < 0) { |
623 | rcu_read_unlock(); | 624 | rcu_read_unlock(); |
624 | goto done; | 625 | goto done; |
625 | } | 626 | } |
@@ -635,7 +636,7 @@ cont: | |||
635 | NETLINK_CB(cb->skb).portid, | 636 | NETLINK_CB(cb->skb).portid, |
636 | cb->nlh->nlmsg_seq, | 637 | cb->nlh->nlmsg_seq, |
637 | RTM_NEWNETCONF, NLM_F_MULTI, | 638 | RTM_NEWNETCONF, NLM_F_MULTI, |
638 | -1) <= 0) | 639 | -1) < 0) |
639 | goto done; | 640 | goto done; |
640 | else | 641 | else |
641 | h++; | 642 | h++; |
@@ -646,7 +647,7 @@ cont: | |||
646 | NETLINK_CB(cb->skb).portid, | 647 | NETLINK_CB(cb->skb).portid, |
647 | cb->nlh->nlmsg_seq, | 648 | cb->nlh->nlmsg_seq, |
648 | RTM_NEWNETCONF, NLM_F_MULTI, | 649 | RTM_NEWNETCONF, NLM_F_MULTI, |
649 | -1) <= 0) | 650 | -1) < 0) |
650 | goto done; | 651 | goto done; |
651 | else | 652 | else |
652 | h++; | 653 | h++; |
@@ -4047,7 +4048,8 @@ static int inet6_fill_ifaddr(struct sk_buff *skb, struct inet6_ifaddr *ifa, | |||
4047 | if (nla_put_u32(skb, IFA_FLAGS, ifa->flags) < 0) | 4048 | if (nla_put_u32(skb, IFA_FLAGS, ifa->flags) < 0) |
4048 | goto error; | 4049 | goto error; |
4049 | 4050 | ||
4050 | return nlmsg_end(skb, nlh); | 4051 | nlmsg_end(skb, nlh); |
4052 | return 0; | ||
4051 | 4053 | ||
4052 | error: | 4054 | error: |
4053 | nlmsg_cancel(skb, nlh); | 4055 | nlmsg_cancel(skb, nlh); |
@@ -4076,7 +4078,8 @@ static int inet6_fill_ifmcaddr(struct sk_buff *skb, struct ifmcaddr6 *ifmca, | |||
4076 | return -EMSGSIZE; | 4078 | return -EMSGSIZE; |
4077 | } | 4079 | } |
4078 | 4080 | ||
4079 | return nlmsg_end(skb, nlh); | 4081 | nlmsg_end(skb, nlh); |
4082 | return 0; | ||
4080 | } | 4083 | } |
4081 | 4084 | ||
4082 | static int inet6_fill_ifacaddr(struct sk_buff *skb, struct ifacaddr6 *ifaca, | 4085 | static int inet6_fill_ifacaddr(struct sk_buff *skb, struct ifacaddr6 *ifaca, |
@@ -4101,7 +4104,8 @@ static int inet6_fill_ifacaddr(struct sk_buff *skb, struct ifacaddr6 *ifaca, | |||
4101 | return -EMSGSIZE; | 4104 | return -EMSGSIZE; |
4102 | } | 4105 | } |
4103 | 4106 | ||
4104 | return nlmsg_end(skb, nlh); | 4107 | nlmsg_end(skb, nlh); |
4108 | return 0; | ||
4105 | } | 4109 | } |
4106 | 4110 | ||
4107 | enum addr_type_t { | 4111 | enum addr_type_t { |
@@ -4134,7 +4138,7 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb, | |||
4134 | cb->nlh->nlmsg_seq, | 4138 | cb->nlh->nlmsg_seq, |
4135 | RTM_NEWADDR, | 4139 | RTM_NEWADDR, |
4136 | NLM_F_MULTI); | 4140 | NLM_F_MULTI); |
4137 | if (err <= 0) | 4141 | if (err < 0) |
4138 | break; | 4142 | break; |
4139 | nl_dump_check_consistent(cb, nlmsg_hdr(skb)); | 4143 | nl_dump_check_consistent(cb, nlmsg_hdr(skb)); |
4140 | } | 4144 | } |
@@ -4151,7 +4155,7 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb, | |||
4151 | cb->nlh->nlmsg_seq, | 4155 | cb->nlh->nlmsg_seq, |
4152 | RTM_GETMULTICAST, | 4156 | RTM_GETMULTICAST, |
4153 | NLM_F_MULTI); | 4157 | NLM_F_MULTI); |
4154 | if (err <= 0) | 4158 | if (err < 0) |
4155 | break; | 4159 | break; |
4156 | } | 4160 | } |
4157 | break; | 4161 | break; |
@@ -4166,7 +4170,7 @@ static int in6_dump_addrs(struct inet6_dev *idev, struct sk_buff *skb, | |||
4166 | cb->nlh->nlmsg_seq, | 4170 | cb->nlh->nlmsg_seq, |
4167 | RTM_GETANYCAST, | 4171 | RTM_GETANYCAST, |
4168 | NLM_F_MULTI); | 4172 | NLM_F_MULTI); |
4169 | if (err <= 0) | 4173 | if (err < 0) |
4170 | break; | 4174 | break; |
4171 | } | 4175 | } |
4172 | break; | 4176 | break; |
@@ -4638,7 +4642,8 @@ static int inet6_fill_ifinfo(struct sk_buff *skb, struct inet6_dev *idev, | |||
4638 | goto nla_put_failure; | 4642 | goto nla_put_failure; |
4639 | 4643 | ||
4640 | nla_nest_end(skb, protoinfo); | 4644 | nla_nest_end(skb, protoinfo); |
4641 | return nlmsg_end(skb, nlh); | 4645 | nlmsg_end(skb, nlh); |
4646 | return 0; | ||
4642 | 4647 | ||
4643 | nla_put_failure: | 4648 | nla_put_failure: |
4644 | nlmsg_cancel(skb, nlh); | 4649 | nlmsg_cancel(skb, nlh); |
@@ -4670,7 +4675,7 @@ static int inet6_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb) | |||
4670 | if (inet6_fill_ifinfo(skb, idev, | 4675 | if (inet6_fill_ifinfo(skb, idev, |
4671 | NETLINK_CB(cb->skb).portid, | 4676 | NETLINK_CB(cb->skb).portid, |
4672 | cb->nlh->nlmsg_seq, | 4677 | cb->nlh->nlmsg_seq, |
4673 | RTM_NEWLINK, NLM_F_MULTI) <= 0) | 4678 | RTM_NEWLINK, NLM_F_MULTI) < 0) |
4674 | goto out; | 4679 | goto out; |
4675 | cont: | 4680 | cont: |
4676 | idx++; | 4681 | idx++; |
@@ -4747,7 +4752,8 @@ static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev, | |||
4747 | ci.valid_time = ntohl(pinfo->valid); | 4752 | ci.valid_time = ntohl(pinfo->valid); |
4748 | if (nla_put(skb, PREFIX_CACHEINFO, sizeof(ci), &ci)) | 4753 | if (nla_put(skb, PREFIX_CACHEINFO, sizeof(ci), &ci)) |
4749 | goto nla_put_failure; | 4754 | goto nla_put_failure; |
4750 | return nlmsg_end(skb, nlh); | 4755 | nlmsg_end(skb, nlh); |
4756 | return 0; | ||
4751 | 4757 | ||
4752 | nla_put_failure: | 4758 | nla_put_failure: |
4753 | nlmsg_cancel(skb, nlh); | 4759 | nlmsg_cancel(skb, nlh); |