On 2/28/17 10:44 AM, Cong Wang wrote:
> Like commit 1f17e2f2c8a8 ("net: ipv6: ignore null_entry on route dumps"),
> we need to ignore null entry in inet6_rtm_getroute() too.
> 
> Return -ENOENT here because we return the same errno when deleting
> the null entry.
> 
> Fixes: a1a22c1206 ("net: ipv6: Keep nexthop of multipath route on admin down")
> Reported-by: Dmitry Vyukov <dvyu...@google.com>
> Cc: David Ahern <d...@cumulusnetworks.com>
> Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>
> ---
>  net/ipv6/route.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> index f54f426..25590d1 100644
> --- a/net/ipv6/route.c
> +++ b/net/ipv6/route.c
> @@ -3627,6 +3627,12 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, 
> struct nlmsghdr *nlh)
>               rt = (struct rt6_info *)ip6_route_output(net, NULL, &fl6);
>       }
>  
> +     if (rt == net->ipv6.ip6_null_entry) {
> +             ip6_rt_put(rt);
> +             err = -ENOENT;
> +             goto errout;
> +     }
> +
>       skb = alloc_skb(NLMSG_GOODSIZE, GFP_KERNEL);
>       if (!skb) {
>               ip6_rt_put(rt);
> 

hold on. That test exposed something else, not just a getroute problem.
I accidentally ran 'unsahre -n; ip -6 ro ls' on my host machine instead
of a VM, so took some time to recover. dumproute already covers the null
route.

I'll get back to this in the afternoon.

Reply via email to