On 8/15/17 8:50 PM, Roopa Prabhu wrote:
> diff --git a/net/ipv4/route.c b/net/ipv4/route.c
> index 7effa62..49a018f 100644
> --- a/net/ipv4/route.c
> +++ b/net/ipv4/route.c
> @@ -2763,14 +2763,21 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, 
> struct nlmsghdr *nlh,
>       if (rtm->rtm_flags & RTM_F_LOOKUP_TABLE)
>               table_id = rt->rt_table_id;
>  
> -     if (rtm->rtm_flags & RTM_F_FIB_MATCH)
> +     if (rtm->rtm_flags & RTM_F_FIB_MATCH) {
> +             if (!res.fi) {
> +                     err = fib_props[res->type].error;
> +                     if (!err)
> +                             err = -EINVAL;

I think -EHOSTUNREACH is a better error than EINVAL. Nothing about the
user inputs are invalid; rather the lookup is failing, but indirectly.

Reply via email to