ip: crash in ip4_sas_commonlen 86/41286/2
authorSteven Luong <[email protected]>
Mon, 22 Jul 2024 16:27:33 +0000 (09:27 -0700)
committerOle Tr�an <[email protected]>
Tue, 23 Jul 2024 07:30:03 +0000 (07:30 +0000)
ip4_sas_commonlen may be called with null a2 argument from
ip4_neighbor_advertise -> ip4_sas_by_sw_if_index.
If a1 or a2 is null, there is no common length, shortest mask
between a1 and a2, return 0 instead of crashing.

Type: fix

Change-Id: I307509ee7dedafac76d8877a1ef76ab8bbafef59
Signed-off-by: Steven Luong <[email protected]>
src/vnet/ip/ip_sas.c

index 0fc2617..01f6c90 100644 (file)
@@ -54,6 +54,8 @@ ip6_sas_commonlen (const ip6_address_t *a1, const ip6_address_t *a2)
 static int
 ip4_sas_commonlen (const ip4_address_t *a1, const ip4_address_t *a2)
 {
+  if (!a1 || !a2)
+    return 0;
   u64 a =
     clib_net_to_host_u32 (a1->as_u32) ^ clib_net_to_host_u32 (a2->as_u32);
   if (a == 0)