]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Fix crash when igmp message comes in on non-configured interface
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 27 Oct 2016 00:26:16 +0000 (20:26 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:12 +0000 (20:26 -0500)
When we receive a igmp message through the kernel upcall, make
sure that we are configured to work on that interface via pim/igmp
before attempting to use that interface.

Ticket: CM-13338
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_mroute.c

index 982aa9477a12e8e3e5269b44d54b496aa3a4966a..5f8d180742e4a08812257ddf27675d84b23748a4 100644 (file)
@@ -433,6 +433,14 @@ int pim_mroute_msg(int fd, const char *buf, int buf_size)
     }
 
     pim_ifp = ifp->info;
+    if (!pim_ifp)
+      {
+       if (PIM_DEBUG_MROUTE_DETAIL)
+         zlog_debug ("%s: igmp kernel upcall for interface:%s not configured for pim",
+                     __PRETTY_FUNCTION__, ifp->name);
+       return 0;
+      }
+
     ifaddr = pim_find_primary_addr(ifp);
     igmp = pim_igmp_sock_lookup_ifaddr(pim_ifp->igmp_socket_list, ifaddr);