lkml.org 
[lkml]   [2012]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCHv1] ipv6: Fix RTM_GETROUTE's interpretation of RTA_IIF to be consistent with ipv4
Hi David,

On Sun, 01 Apr 2012 17:30:32 -0400 (EDT) David Miller <davem@davemloft.net> wrote:
> > Fix 'inet6_rtm_getroute()' so that RTA_IIF is interpreted as "lookup a
> > route as if a packet was received on the specified interface", similar
> > to IPv4's 'inet_rtm_getroute()' interpretation.
> >
> > Reported-by: Ami Koren <amikoren@yahoo.com>
> > Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
>
> Applied, thanks.
>
> > 1) An alternative: construction of an skb within 'inet6_rtm_getroute()'
> > and then calling 'ip6_route_input()' with the skb as an argument.
> > Thus, no need to split common code of 'ip6_route_input()'.
> > Less elegant IMO.
>
> Agreed.
>
> > 2) Better name for the new common function 'ip6_route_input_lookup()'
> > Will happily accept any better suggestions.
>
> No, it's fine.
>
> > 3) In IPv4 the 'ip_route_input()' call within 'inet_rtm_getroute()'is
> > protected by a 'local_bh_disable()' since dawn of history.
> > Not sure if similar protection needed within 'inet6_rtm_getroute()'.
>
> Since all the code paths are shared more than on the ipv4 side, both
> output and input route lookups can be done with and without BH
> disabling.

Thanks for the answers.

Looking at the patch again, I suspect I've missed one thing.

After applying patch, the code getting the 'rt' gets placed prior the
'alloc_skb()' - snip of new code:

if (iif) {
// some stuff ...

rt = (struct rt6_info *)ip6_route_input_lookup(net, dev, &fl6,
flags);
} else {
fl6.flowi6_oif = oif;

rt = (struct rt6_info *)ip6_route_output(net, NULL, &fl6);
}

skb = alloc_skb(NLMSG_GOODSIZE, GFP_KERNEL);
if (!skb) {
err = -ENOBUFS;
goto errout;
}

In case of 'alloc_skb' failure, shouldn't we issue a
'dst_release(&rt->dst)'?

If correct, I'll submit a fix. Should have spotted this earlier.

Regards,
Shmulik


\
 
 \ /
  Last update: 2012-04-04 09:55    [W:0.040 / U:2.252 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site