diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/addrlabel.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv6/addrlabel.c b/net/ipv6/addrlabel.c index ae404c9a746c..8c4348cb1950 100644 --- a/net/ipv6/addrlabel.c +++ b/net/ipv6/addrlabel.c | |||
@@ -422,10 +422,6 @@ static int ip6addrlbl_newdel(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
422 | ifal->ifal_prefixlen > 128) | 422 | ifal->ifal_prefixlen > 128) |
423 | return -EINVAL; | 423 | return -EINVAL; |
424 | 424 | ||
425 | if (ifal->ifal_index && | ||
426 | !__dev_get_by_index(net, ifal->ifal_index)) | ||
427 | return -EINVAL; | ||
428 | |||
429 | if (!tb[IFAL_ADDRESS]) | 425 | if (!tb[IFAL_ADDRESS]) |
430 | return -EINVAL; | 426 | return -EINVAL; |
431 | 427 | ||
@@ -441,6 +437,10 @@ static int ip6addrlbl_newdel(struct sk_buff *skb, struct nlmsghdr *nlh, | |||
441 | 437 | ||
442 | switch(nlh->nlmsg_type) { | 438 | switch(nlh->nlmsg_type) { |
443 | case RTM_NEWADDRLABEL: | 439 | case RTM_NEWADDRLABEL: |
440 | if (ifal->ifal_index && | ||
441 | !__dev_get_by_index(net, ifal->ifal_index)) | ||
442 | return -EINVAL; | ||
443 | |||
444 | err = ip6addrlbl_add(net, pfx, ifal->ifal_prefixlen, | 444 | err = ip6addrlbl_add(net, pfx, ifal->ifal_prefixlen, |
445 | ifal->ifal_index, label, | 445 | ifal->ifal_index, label, |
446 | nlh->nlmsg_flags & NLM_F_REPLACE); | 446 | nlh->nlmsg_flags & NLM_F_REPLACE); |