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.