diff options
author | Paul Jakma <paul.jakma@sun.com> | 2006-07-06 11:12:39 +0000 |
---|---|---|
committer | Paul Jakma <paul.jakma@sun.com> | 2006-07-06 11:12:39 +0000 |
commit | aa2737a08a284953908e131894accd25bf627d53 (patch) | |
tree | 7fdf971c27d430f30982971233290b12e6be4231 | |
parent | 5c1960687024a4ab16d33b58be8c410a935c583b (diff) |
[ospfd] early-return in nsm_event missed LLDown event, fixes use after free
2006-07-06 Paul Jakma <paul.jakma@sun.com>
* 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.
-rw-r--r-- | ospfd/ChangeLog | 6 | ||||
-rw-r--r-- | ospfd/ospf_nsm.c | 4 |
2 files changed, 9 insertions, 1 deletions
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 <paul.jakma@sun.com> + + * 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 <paul.jakma@sun.com> * 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", |