tcp: fix the tcp src-address cli 14/34714/2
authorMercury <mercury124185@gmail.com>
Sat, 11 Dec 2021 07:58:32 +0000 (15:58 +0800)
committerMercury <mercury124185@gmail.com>
Sun, 12 Dec 2021 00:26:49 +0000 (08:26 +0800)
When the src-address to add match a route
without a valid output interface(such as default route 0.0.0.0/0),
fib_entry_get_resolving_interface() will return (u32)~0,
which will cause crash in ip4_neighbor_proxy_enable().

Type: fix
Signed-off-by: Mercury <mercury124185@gmail.com>
Change-Id: I5aee5676a2ff43ec06745ebed4dba2b9e5b98c4d

src/vnet/tcp/tcp_cli.c

index c7b5c0b..c9d6c6f 100644 (file)
@@ -411,6 +411,8 @@ tcp_configure_v4_source_address_range (vlib_main_t * vm,
     return VNET_API_ERROR_NEXT_HOP_NOT_IN_FIB;
 
   sw_if_index = fib_entry_get_resolving_interface (fei);
+  if (sw_if_index == (u32) ~0)
+    return VNET_API_ERROR_NO_MATCHING_INTERFACE;
 
   /* Configure proxy arp across the range */
   rv = ip4_neighbor_proxy_add (fib_index, start, end);