[Xorp-cvs] XORP cvs commit: xorp/rib

Pavlin Radoslavov pavlin at icir.org
Tue Oct 2 17:05:49 PDT 2007


CVSROOT:	/usr/local/share/doc/apache/cvs
Module name:	xorp
Changes by:	pavlin at xorpc.icir.org	2007-10-03 00:05:49 UTC

XORP CVS repository


Modified files:
	rib           Makefile.am Makefile.in redist_xrl.cc rib.cc rib.hh 
	              route.hh rt_tab_extint.cc test_deletion.cc 
	              test_redist.cc 

Added files:
	rib           route.cc 

Log message:
	Fix a race condition when deleting a XORP interface.
	Previously the corresponding Vif entry inside the RIBwas removed
	immediately. However, this triggered a coredump if a routing protocol
	tried to delete the routes that use the deleted vif.
	By the time the delete XRL reaches the RIB the routes will contain
	invalid Vif pointers that point to the deleted Vif entry.
	
	The solution is to use a reference counter and postpone the deletion
	of the vif entry until all routers that point to that vif have
	been deleted.
	
	Bug found by:   Ben Greear <greearb AT candelatech.com>

Revision  Changes                                 Path
1.42      +2 -1;  commitid: 971b4702db7d7ea6;     xorp/rib/Makefile.am
1.62      +3 -2;  commitid: 971b4702db7d7ea6;     xorp/rib/Makefile.in
1.32      +2 -1;  commitid: 971b4702db7d7ea6;     xorp/rib/redist_xrl.cc
1.68      +107 -56;  commitid: 971b4702db7d7ea6;  xorp/rib/rib.cc
1.41      +65 -7;  commitid: 971b4702db7d7ea6;    xorp/rib/rib.hh
1.8       +57 -0                                  xorp/rib/route.cc (new)
1.24      +11 -23;  commitid: 971b4702db7d7ea6;   xorp/rib/route.hh
1.33      +4 -3;  commitid: 971b4702db7d7ea6;     xorp/rib/rt_tab_extint.cc
1.12      +6 -3;  commitid: 971b4702db7d7ea6;     xorp/rib/test_deletion.cc
1.15      +4 -2;  commitid: 971b4702db7d7ea6;     xorp/rib/test_redist.cc



More information about the Xorp-cvs mailing list