From d0e47c94ec002821010e943f6d1a8d541ecbdd07 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=D0=90=D1=80=D1=82=D0=B5=D0=BC=20=D0=93=D0=BB=D0=B0=D0=B7?= =?utf8?q?=D1=8B=D1=87=D0=B5=D0=B2?= Date: Tue, 26 Aug 2025 15:04:58 +0300 Subject: [PATCH] linux-cp: don't drain nl-messages during processing When we process the incoming netlink message queue and have NEW_LINK for a VLAN interface, we call lcp_itf_pair_add. Internally, drain is called, which corrupts the original vector (probably due to reallocation) Type: fix Change-Id: I0487bfb2939a04d8d3c156725086fedd6e9c72c7 Signed-off-by: Artem Glazychev --- src/plugins/linux-cp/lcp_nl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/linux-cp/lcp_nl.c b/src/plugins/linux-cp/lcp_nl.c index 55d2ea54245..95e1adc351d 100644 --- a/src/plugins/linux-cp/lcp_nl.c +++ b/src/plugins/linux-cp/lcp_nl.c @@ -756,7 +756,8 @@ lcp_nl_drain_messages (void) void lcp_nl_pair_add_cb (lcp_itf_pair_t *pair) { - lcp_nl_drain_messages (); + if (!lcp_get_netlink_processing_active ()) + lcp_nl_drain_messages (); } static clib_error_t * -- 2.16.6