]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Do not send register stop in some cases
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 21 Sep 2016 20:16:43 +0000 (16:16 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:10 +0000 (20:26 -0500)
When we are disabling pim, there exists some
race conditions where we are attempting
to send a register stop out a interface that
is not setup for pim yet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_upstream.c

index b495f39182db798294a25a7d4c85c95e5f92b76e..027a4ca0c4e3a8c2a9a283dda3d1a62aa955022b 100644 (file)
@@ -999,6 +999,13 @@ pim_upstream_register_stop_timer (struct thread *t)
       break;
     case PIM_UPSTREAM_PRUNE:
       pim_ifp = up->rpf.source_nexthop.interface->info;
+      if (!pim_ifp)
+        {
+         if (PIM_DEBUG_TRACE)
+           zlog_debug ("%s: Interface: %s is not configured for pim",
+                       __PRETTY_FUNCTION__, up->rpf.source_nexthop.interface->name);
+         return 0;
+       }
       up->join_state = PIM_UPSTREAM_JOIN_PENDING;
       pim_upstream_start_register_stop_timer (up, 1);