tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: possible bug when deleting a route during if_detach



On Thu, Feb 24, 2011 at 05:25:37PM +0000, gmcnutt wrote:
> if_detach() calls rt_walktree with if_rt_walktree as the visiting callback,
> which calls rtrequest(RTM_DELETE, ...) from within the tree iteration in
> rn_walktree. Although rn_walktree protects itself from deletion of the current
> node while iterating, there is no protection if the *next* node is deleted
> during the callback. This can happen if the called node is a route and there 
> is
> a clone of it following it in the iteration sequence. That is because
> rtrequest1, in the RTM_DELETE case, will call rtflushclone, and this will
> delete the cloned route. Upon return to rn_walktree, the next node may be
> deleted, but rn_walktree will dereference it.

I am pretty sure that this is fixed in -current.

Dave

-- 
David Young             OJC Technologies
dyoung%ojctech.com@localhost      Urbana, IL * (217) 344-0444 x24


Home | Main Index | Thread Index | Old Index