aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/addrconf.c6
-rw-r--r--net/ipv6/addrlabel.c3
-rw-r--r--net/ipv6/route.c6
3 files changed, 15 insertions, 0 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index b24b4de5cd26..e21bdb92565d 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3514,6 +3514,9 @@ inet6_rtm_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
3514 struct in6_addr *pfx; 3514 struct in6_addr *pfx;
3515 int err; 3515 int err;
3516 3516
3517 if (!capable(CAP_NET_ADMIN))
3518 return -EPERM;
3519
3517 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_ipv6_policy); 3520 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_ipv6_policy);
3518 if (err < 0) 3521 if (err < 0)
3519 return err; 3522 return err;
@@ -3584,6 +3587,9 @@ inet6_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
3584 u8 ifa_flags; 3587 u8 ifa_flags;
3585 int err; 3588 int err;
3586 3589
3590 if (!capable(CAP_NET_ADMIN))
3591 return -EPERM;
3592
3587 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_ipv6_policy); 3593 err = nlmsg_parse(nlh, sizeof(*ifm), tb, IFA_MAX, ifa_ipv6_policy);
3588 if (err < 0) 3594 if (err < 0)
3589 return err; 3595 return err;
diff --git a/net/ipv6/addrlabel.c b/net/ipv6/addrlabel.c
index ff76eecfd622..b106f80be0c5 100644
--- a/net/ipv6/addrlabel.c
+++ b/net/ipv6/addrlabel.c
@@ -425,6 +425,9 @@ static int ip6addrlbl_newdel(struct sk_buff *skb, struct nlmsghdr *nlh,
425 u32 label; 425 u32 label;
426 int err = 0; 426 int err = 0;
427 427
428 if (!capable(CAP_NET_ADMIN))
429 return -EPERM;
430
428 err = nlmsg_parse(nlh, sizeof(*ifal), tb, IFAL_MAX, ifal_policy); 431 err = nlmsg_parse(nlh, sizeof(*ifal), tb, IFAL_MAX, ifal_policy);
429 if (err < 0) 432 if (err < 0)
430 return err; 433 return err;
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 021a48e8a5e2..c6215e2b9d7f 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2446,6 +2446,9 @@ static int inet6_rtm_delroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *a
2446 struct fib6_config cfg; 2446 struct fib6_config cfg;
2447 int err; 2447 int err;
2448 2448
2449 if (!capable(CAP_NET_ADMIN))
2450 return -EPERM;
2451
2449 err = rtm_to_fib6_config(skb, nlh, &cfg); 2452 err = rtm_to_fib6_config(skb, nlh, &cfg);
2450 if (err < 0) 2453 if (err < 0)
2451 return err; 2454 return err;
@@ -2461,6 +2464,9 @@ static int inet6_rtm_newroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *a
2461 struct fib6_config cfg; 2464 struct fib6_config cfg;
2462 int err; 2465 int err;
2463 2466
2467 if (!capable(CAP_NET_ADMIN))
2468 return -EPERM;
2469
2464 err = rtm_to_fib6_config(skb, nlh, &cfg); 2470 err = rtm_to_fib6_config(skb, nlh, &cfg);
2465 if (err < 0) 2471 if (err < 0)
2466 return err; 2472 return err;