vppinfra: fix array_mask_u32 underrun 63/40463/2
authorDmitry Valter <d-valter@yandex-team.com>
Wed, 6 Mar 2024 17:17:54 +0000 (17:17 +0000)
committerDamjan Marion <dmarion@0xa5.net>
Tue, 2 Apr 2024 11:11:53 +0000 (11:11 +0000)
Properly handle small buffers in the AVX256 version of array_mask_u32.

Type: fix
Signed-off-by: Dmitry Valter <d-valter@yandex-team.com>
Fixes: f62ed3f9c1ec3e8db36f63d6a54f46b7bea43723
Change-Id: Idf1cb43ccf37bd7c439d11e4f68fe30064c6d09a

src/vppinfra/vector/array_mask.h

index ba22d79..3d4a82a 100644 (file)
@@ -57,6 +57,7 @@ clib_array_mask_u32 (u32 *src, u32 mask, u32 n_elts)
       u32x4 mask4 = u32x4_splat (mask);
       *(u32x4u *) src &= mask4;
       *(u32x4u *) (src + n_elts - 4) &= mask4;
+      return;
     }
 #endif