ip: crash in ip4_sas_commonlen

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 <sluong@cisco.com>
This commit is contained in:
Steven Luong
2024-07-22 09:27:33 -07:00
committed by Ole Tr�an
parent e99d266612
commit 3ac2ac5324

View File

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