summaryrefslogtreecommitdiffstats
path: root/ospfd/ospf_nsm.c
diff options
context:
space:
mode:
authorpaul <paul>2006-07-06 11:12:39 +0000
committerpaul <paul>2006-07-06 11:12:39 +0000
commitd6540cce83db645447b9ecf60c9a9d2599c65238 (patch)
tree8a0c270598077cf3b626d37a2d9d5ac618397194 /ospfd/ospf_nsm.c
parentc8405c09976db9207db05d4e6c04b42bd266f543 (diff)
downloadquagga-d6540cce83db645447b9ecf60c9a9d2599c65238.tar.bz2
quagga-d6540cce83db645447b9ecf60c9a9d2599c65238.tar.xz
[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.
Diffstat (limited to 'ospfd/ospf_nsm.c')
-rw-r--r--ospfd/ospf_nsm.c4
1 files changed, 3 insertions, 1 deletions
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",