From: Florin Coras Date: Wed, 29 Nov 2023 00:05:29 +0000 (-0800) Subject: vcl: fix init of ldp workers X-Git-Tag: v24.06-rc0~109 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=1b75fdbda01ceac2051e3d443c1db0d884d11bd5;hp=557b20c4eab7b7aefd281f28f7535c4ea22a2845;p=vpp.git vcl: fix init of ldp workers LDP workers is used as vector but was initialized as a pool. There was no side effect but ASAN does not properly unpoison memory and this triggers false used-after-poison crashes. Type: fix Signed-off-by: Dmitry Valter Signed-off-by: Florin Coras Change-Id: Ie769dad0e86ab970de9929800d0a4131f846e70e --- diff --git a/src/vcl/ldp.c b/src/vcl/ldp.c index 0338ce65a21..369c480ba31 100644 --- a/src/vcl/ldp.c +++ b/src/vcl/ldp.c @@ -195,7 +195,7 @@ ldp_alloc_workers (void) { if (ldp->workers) return; - pool_alloc (ldp->workers, LDP_MAX_NWORKERS); + ldp->workers = vec_new (ldp_worker_ctx_t, LDP_MAX_NWORKERS); } static void @@ -312,11 +312,9 @@ ldp_init (void) } ldp->vcl_needs_real_epoll = 0; ldp_alloc_workers (); - ldpw = ldp_worker_get_current (); - pool_foreach (ldpw, ldp->workers) { + vec_foreach (ldpw, ldp->workers) clib_memset (&ldpw->clib_time, 0, sizeof (ldpw->clib_time)); - } LDBG (0, "LDP initialization: done!");