On Mon, Aug 06, 2018 at 03:37:38PM +0200, Sebastian Benoit wrote:
> Ayaka Koshibe([email protected]) on 2018.08.05 17:43:34 -0700:
> > Hi,
> > 
> > I noticed that if you try to move an immovable lo(4) to a nonexistent 
> > rdomain,
> > a new routing table will be created despite the operation failing with an
> > EPERM.
> > 
> yes, i dont think it should do that

Aggreed
 
> > The following moves the rdomain/index check for lo(4) to before the creation
> > of a nonexisting target routing table.
> > 
> > OK?
> 
> ok benno@

ok claudio@ as well

> 
> > Thanks,
> > Ayaka
> > 
> > 
> > Index: if.c
> > ===================================================================
> > RCS file: /cvs/src/sys/net/if.c,v
> > retrieving revision 1.558
> > diff -u -p -u -r1.558 if.c
> > --- if.c    11 Jul 2018 09:08:21 -0000      1.558
> > +++ if.c    6 Aug 2018 00:06:34 -0000
> > @@ -1743,6 +1743,10 @@ if_setrdomain(struct ifnet *ifp, int rdo
> >     if (rdomain < 0 || rdomain > RT_TABLEID_MAX)
> >             return (EINVAL);
> >  
> > +   if ((ifp->if_flags & IFF_LOOPBACK) &&
> > +       (ifp->if_index == rtable_loindex(ifp->if_rdomain)))
> > +           return (EPERM);
> > +
> >     /*
> >      * Create the routing table if it does not exist, including its
> >      * loopback interface with unit == rdomain.
> > @@ -1777,10 +1781,6 @@ if_setrdomain(struct ifnet *ifp, int rdo
> >             return (EINVAL);
> >  
> >     if (rdomain != ifp->if_rdomain) {
> > -           if ((ifp->if_flags & IFF_LOOPBACK) &&
> > -               (ifp->if_index == rtable_loindex(ifp->if_rdomain)))
> > -                   return (EPERM);
> > -
> >             s = splnet();
> >             /*
> >              * We are tearing down the world.
> > 
> 

-- 
:wq Claudio

Reply via email to