On Thu, Oct 22, 2015 at 04:31:09PM +0200, Martin Pieuchot wrote:
> Two more cases, ok?

OK bluhm@

> 
> Index: netinet6/in6_src.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/in6_src.c,v
> retrieving revision 1.64
> diff -u -p -r1.64 in6_src.c
> --- netinet6/in6_src.c        19 Oct 2015 12:11:28 -0000      1.64
> +++ netinet6/in6_src.c        22 Oct 2015 14:25:26 -0000
> @@ -285,7 +285,7 @@ in6_selectsrc(struct in6_addr **in6src, 
>                */
>  
>               if (ro->ro_rt) {
> -                     ia6 = in6_ifawithscope(ro->ro_rt->rt_ifa->ifa_ifp, dst,
> +                     ia6 = in6_ifawithscope(ro->ro_rt->rt_ifp, dst,
>                           rtableid);
>                       if (ia6 == NULL) /* xxx scope error ?*/
>                               ia6 = ifatoia6(ro->ro_rt->rt_ifa);
> @@ -456,15 +456,8 @@ in6_selectif(struct sockaddr_in6 *dstsoc
>       if (rt && (rt->rt_flags & (RTF_REJECT | RTF_BLACKHOLE)))
>               return (rt->rt_flags & RTF_HOST ? EHOSTUNREACH : ENETUNREACH);
>  
> -     /*
> -      * Adjust the "outgoing" interface.  If we're going to loop the packet
> -      * back to ourselves, the ifp would be the loopback interface.
> -      * However, we'd rather know the interface associated to the
> -      * destination address (which should probably be one of our own
> -      * addresses.)
> -      */
> -     if (rt && rt->rt_ifa && rt->rt_ifa->ifa_ifp)
> -             *retifp = if_ref(rt->rt_ifa->ifa_ifp);
> +     if (rt != NULL)
> +             *retifp = if_ref(rt->rt_ifp);
>  
>       return (0);
>  }

  • Fewer ifa_ifp Martin Pieuchot
    • Re: Fewer ifa_ifp Alexander Bluhm

Reply via email to