ip-neighbor: GARP sent to bogus ip address 56/33156/3
authorSteven Luong <sluong@cisco.com>
Thu, 15 Jul 2021 15:57:02 +0000 (08:57 -0700)
committerNeale Ranns <neale@graphiant.com>
Thu, 15 Jul 2021 18:14:44 +0000 (18:14 +0000)
The function ip4_neighbor_advertise may be called with NULL addr. In
that case, it looks up addr from fib by calling fib_sas4_get which
returns true or false to indicate whether there is an ip address
associated with the interface or not. But the caller to fib_sas4_get
does not check the return code and blindly assumes there is always an
ip address associated with the interface. As a result, it ends up
sending GARP to the bogus ip address if there is no ip address
associated with the interface.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I7aa0270766c3943ed8ca8f8a092cae34567fd30e

src/vnet/ip-neighbor/ip4_neighbor.c

index 9484825..9dda50e 100644 (file)
@@ -79,8 +79,8 @@ ip4_neighbor_advertise (vlib_main_t * vm,
 
   if (NULL == addr)
     {
-      fib_sas4_get (sw_if_index, NULL, &tmp);
-      addr = &tmp;
+      if (fib_sas4_get (sw_if_index, NULL, &tmp))
+       addr = &tmp;
     }
 
   if (addr)