aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 35c58b669ebd..fb174b590fd3 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1854,6 +1854,10 @@ static struct rt6_info *ip6_route_info_create(struct fib6_config *cfg)
1854 int addr_type; 1854 int addr_type;
1855 int err = -EINVAL; 1855 int err = -EINVAL;
1856 1856
1857 /* RTF_PCPU is an internal flag; can not be set by userspace */
1858 if (cfg->fc_flags & RTF_PCPU)
1859 goto out;
1860
1857 if (cfg->fc_dst_len > 128 || cfg->fc_src_len > 128) 1861 if (cfg->fc_dst_len > 128 || cfg->fc_src_len > 128)
1858 goto out; 1862 goto out;
1859#ifndef CONFIG_IPV6_SUBTREES 1863#ifndef CONFIG_IPV6_SUBTREES
@@ -3423,6 +3427,8 @@ static int rt6_fill_node(struct net *net,
3423 } 3427 }
3424 else if (rt->rt6i_flags & RTF_LOCAL) 3428 else if (rt->rt6i_flags & RTF_LOCAL)
3425 rtm->rtm_type = RTN_LOCAL; 3429 rtm->rtm_type = RTN_LOCAL;
3430 else if (rt->rt6i_flags & RTF_ANYCAST)
3431 rtm->rtm_type = RTN_ANYCAST;
3426 else if (rt->dst.dev && (rt->dst.dev->flags & IFF_LOOPBACK)) 3432 else if (rt->dst.dev && (rt->dst.dev->flags & IFF_LOOPBACK))
3427 rtm->rtm_type = RTN_LOCAL; 3433 rtm->rtm_type = RTN_LOCAL;
3428 else 3434 else