ip-neighbor: skip probe for disabled interfaces 80/28180/2
authorMatthew Smith <mgsmith@netgate.com>
Tue, 4 Aug 2020 20:26:16 +0000 (15:26 -0500)
committerNeale Ranns <nranns@cisco.com>
Tue, 25 Aug 2020 07:45:40 +0000 (07:45 +0000)
Type: fix

In ip6_neighbor_probe(), if the interface is not enabled for ip6,
return NULL and skip trying to build a packet.

If the interface is not enabled, its mcast adjacency will be set to
~0 and a seg fault will ensue.

Change-Id: I825c9f40a0d5b2a77f788ac8dbd618138706383d
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
src/vnet/ip-neighbor/ip6_neighbor.h

index 934a288..7f76efd 100644 (file)
@@ -54,6 +54,12 @@ ip6_neighbor_probe (vlib_main_t * vm,
   if (!h0)
     return NULL;;
 
+  /* if the interface has been disabled for ip6, later steps to retrieve
+   * an adjacency will result in a segv.
+   */
+  if (!ip6_link_is_enabled (adj->rewrite_header.sw_if_index))
+    return NULL;
+
   b0 = vlib_get_buffer (vm, bi0);
 
   hw_if0 = vnet_get_sup_hw_interface (vnm, adj->rewrite_header.sw_if_index);