The constant representing the size of the metadata is defined as a unsigned int variable with 32-bit. Similarly the constant representing the maximal output is also defined as a unsigned int variable with 32-bit.
There is potentially overflowing expression when those constants are evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type size_t that might be 64 bit. Change the size of the above constants to size_t. Fixes: 30d604bb1504 ("regex/mlx5: fix type of setup constants") Cc: sta...@dpdk.org Signed-off-by: Michael Baum <michae...@nvidia.com> Acked-by: Matan Azrad <ma...@nvidia.com> --- v2: use size_t and uintptr_t instead of uint64_t. drivers/regex/mlx5/mlx5_regex_fastpath.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/regex/mlx5/mlx5_regex_fastpath.c b/drivers/regex/mlx5/mlx5_regex_fastpath.c index b57e7d7794..910bc845f3 100644 --- a/drivers/regex/mlx5/mlx5_regex_fastpath.c +++ b/drivers/regex/mlx5/mlx5_regex_fastpath.c @@ -25,8 +25,8 @@ #include "mlx5_regex.h" #define MLX5_REGEX_MAX_WQE_INDEX 0xffff -#define MLX5_REGEX_METADATA_SIZE UINT32_C(64) -#define MLX5_REGEX_MAX_OUTPUT RTE_BIT32(11) +#define MLX5_REGEX_METADATA_SIZE ((size_t)64) +#define MLX5_REGEX_MAX_OUTPUT (((size_t)1) << 11) #define MLX5_REGEX_WQE_CTRL_OFFSET 12 #define MLX5_REGEX_WQE_METADATA_OFFSET 16 #define MLX5_REGEX_WQE_GATHER_OFFSET 32 -- 2.25.1