From aa2737a08a284953908e131894accd25bf627d53 Mon Sep 17 00:00:00 2001 From: Paul Jakma Date: Thu, 6 Jul 2006 11:12:39 +0000 Subject: [ospfd] early-return in nsm_event missed LLDown event, fixes use after free 2006-07-06 Paul Jakma * ospf_nsm.c: (ospf_nsm_event) LLDown event also results in nbr being deleted, requires early-return too. Likely explains some crash reports after interface events. --- ospfd/ChangeLog | 6 ++++++ ospfd/ospf_nsm.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 054935b3..b4f7d3e7 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,9 @@ +2006-07-06 Paul Jakma + + * ospf_nsm.c: (ospf_nsm_event) LLDown event also results in nbr + being deleted, requires early-return too. Likely explains + some crash reports after interface events. + 2006-07-04 Paul Jakma * ospf_nsm.c: (general) Various small cleanups from Andrew's diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c index 11da503e..fb736eba 100644 --- a/ospfd/ospf_nsm.c +++ b/ospfd/ospf_nsm.c @@ -857,7 +857,9 @@ ospf_nsm_event (struct thread *thread) /* When event is NSM_KillNbr or InactivityTimer, the neighbor is deleted. */ - if (event == NSM_KillNbr || event == NSM_InactivityTimer) + if (event == NSM_KillNbr + || event == NSM_InactivityTimer + || event == NSM_LLDown) { if (IS_DEBUG_OSPF (nsm, NSM_EVENTS)) zlog_debug ("NSM[%s:%s]: neighbor deleted", -- cgit v1.2.1