IPv6 route mutex recursion (crash) and fix

Brian Fundakowski Feldman green at freebsd.org
Tue Sep 21 19:53:30 PDT 2004


On Wed, Sep 22, 2004 at 11:43:17AM +0900, George V. Neville-Neil wrote:
> At Tue, 21 Sep 2004 22:09:57 -0400,
> Brian Fundakowski Feldman wrote:
> > 
> > I've already made noise about this before, so I'll be brief.  I plan on
> > committing the following fix that prevents the routing code from being
> > recursed upon such that RTM_RESOLVE causes the embryonic new route to
> > be looked up again.  I realize that probably no one will bother trying
> > to see this bug in action, but all you need to do is send some UDP6 to
> > ff02::1%<if> as a user, with INVARIANTS turned on.
> > 
> > Are there any objections?  It would be nice to have this in 5-STABLE,
> > in case anyone actually wants to have IPv6.
> 
> Unless I am missing something (I have not applied the patch) it's not
> doing anything.  What does the new code actually do?
> 
> I'll try to try this patch out later.

Sorry, I should have provided a higher number of lines of context.
It prevents a call to nd6_lookup() and reentry into the route table
when entered via RTM_RESOLVE.  I.e. nd6_rtrequest(), nd6_is_addr_neighbor(),
nd6_lookup().

I appreciate you looking at it; I've had the problem for a year and no one
bothered to really look at it.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the freebsd-net mailing list