linux-cp: fix auto-sub-int 18/38118/2
authorStanislav Zaikin <zstaseg@gmail.com>
Thu, 2 Feb 2023 08:54:17 +0000 (09:54 +0100)
committerMatthew Smith <mgsmith@netgate.com>
Thu, 2 Feb 2023 16:43:33 +0000 (16:43 +0000)
lcp_itf_pair_pool could grew during sub-interface creation.

Type: fix
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
Change-Id: Ideafe392f9bb2b418ce9d6faa4f08dfe26f4a273

src/plugins/linux-cp/lcp_interface_sync.c
src/plugins/linux-cp/lcp_router.c

index 57a8e55..bd26ebb 100644 (file)
@@ -389,7 +389,7 @@ lcp_itf_interface_add_del (vnet_main_t *vnm, u32 sw_if_index, u32 is_create)
       if (!sup_lip)
        return NULL;
 
-      name = format (name, "%s.%d", sup_lip->lip_host_name, sw->sub.id);
+      name = format (name, "%s.%d%c", sup_lip->lip_host_name, sw->sub.id, 0);
 
       LCP_ITF_PAIR_INFO (
        "interface_%s: %U has parent %U, auto-creating LCP with host-if %s",
index ab8ab16..01eca9f 100644 (file)
@@ -419,6 +419,10 @@ lcp_router_link_add (struct rtnl_link *rl, void *ctx)
                               lip->lip_phy_sw_if_index);
              return;
            }
+
+         /* pool could grow during the previous operation */
+         lip = lcp_itf_pair_get (lipi);
+
          /* create the vlan interface on the parent host */
          if (vnet_create_sub_interface (lip->lip_host_sw_if_index, vlan, 18,
                                         0, vlan, &sub_host_sw_if_index))