Loading net/ipv6/ndisc.c +7 −1 Original line number Original line Diff line number Diff line Loading @@ -1272,7 +1272,13 @@ static void ndisc_router_discovery(struct sk_buff *skb) for (p = ndopts.nd_opts_ri; for (p = ndopts.nd_opts_ri; p; p; p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) { p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) { if (((struct route_info *)p)->prefix_len > in6_dev->cnf.accept_ra_rt_info_max_plen) struct route_info *ri = (struct route_info *)p; #ifdef CONFIG_IPV6_NDISC_NODETYPE if (skb->ndisc_nodetype == NDISC_NODETYPE_NODEFAULT && ri->prefix_len == 0) continue; #endif if (ri->prefix_len > in6_dev->cnf.accept_ra_rt_info_max_plen) continue; continue; rt6_route_rcv(skb->dev, (u8*)p, (p->nd_opt_len) << 3, rt6_route_rcv(skb->dev, (u8*)p, (p->nd_opt_len) << 3, &ipv6_hdr(skb)->saddr); &ipv6_hdr(skb)->saddr); Loading Loading
net/ipv6/ndisc.c +7 −1 Original line number Original line Diff line number Diff line Loading @@ -1272,7 +1272,13 @@ static void ndisc_router_discovery(struct sk_buff *skb) for (p = ndopts.nd_opts_ri; for (p = ndopts.nd_opts_ri; p; p; p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) { p = ndisc_next_option(p, ndopts.nd_opts_ri_end)) { if (((struct route_info *)p)->prefix_len > in6_dev->cnf.accept_ra_rt_info_max_plen) struct route_info *ri = (struct route_info *)p; #ifdef CONFIG_IPV6_NDISC_NODETYPE if (skb->ndisc_nodetype == NDISC_NODETYPE_NODEFAULT && ri->prefix_len == 0) continue; #endif if (ri->prefix_len > in6_dev->cnf.accept_ra_rt_info_max_plen) continue; continue; rt6_route_rcv(skb->dev, (u8*)p, (p->nd_opt_len) << 3, rt6_route_rcv(skb->dev, (u8*)p, (p->nd_opt_len) << 3, &ipv6_hdr(skb)->saddr); &ipv6_hdr(skb)->saddr); Loading