From: Florin Coras Date: Sat, 14 Jun 2025 22:19:14 +0000 (-0400) Subject: vcl: validate ldp select bitmap only if bits set X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F79%2F43179%2F2;p=vpp.git vcl: validate ldp select bitmap only if bits set Type: fix Change-Id: Ic873cb9511cf70619722e7b0f58211ad2a2a6772 Signed-off-by: Florin Coras --- diff --git a/src/vcl/ldp.c b/src/vcl/ldp.c index 7e4cddbb46d..ffd7b045de2 100644 --- a/src/vcl/ldp.c +++ b/src/vcl/ldp.c @@ -651,14 +651,15 @@ ldp_select_init_maps (fd_set * __restrict original, clib_memcpy_fast (*resultb, original, n_bytes); memset (original, 0, n_bytes); - clib_bitmap_foreach (fd, *resultb) { - if (fd > nfds) - break; - vlsh = ldp_fd_to_vlsh (fd); - if (vlsh == VLS_INVALID_HANDLE) - clib_bitmap_set_no_check (*libcb, fd, 1); - else - { + clib_bitmap_foreach (fd, *resultb) + { + if (fd > nfds) + break; + vlsh = ldp_fd_to_vlsh (fd); + if (vlsh == VLS_INVALID_HANDLE) + clib_bitmap_set_no_check (*libcb, fd, 1); + else + { vlsh_to_session_and_worker_index (vlsh, &session_index, &wrk_index); if (wrk_index != vppcom_worker_index ()) clib_warning ( @@ -666,12 +667,13 @@ ldp_select_init_maps (fd_set * __restrict original, wrk_index, vppcom_worker_index ()); else *vclb = clib_bitmap_set (*vclb, session_index, 1); - } - } + } + } si_bits_set = clib_bitmap_last_set (*vclb) + 1; *si_bits = (si_bits_set > *si_bits) ? si_bits_set : *si_bits; - clib_bitmap_validate (*resultb, *si_bits); + if (*si_bits) + clib_bitmap_validate (*resultb, *si_bits); libc_bits_set = clib_bitmap_last_set (*libcb) + 1; *libc_bits = (libc_bits_set > *libc_bits) ? libc_bits_set : *libc_bits;