From a07079b1a69b031d7dc82092af89cae0c65a0ee6 Mon Sep 17 00:00:00 2001 From: Michael Baum Date: Wed, 18 Nov 2020 17:00:06 +0000 Subject: [PATCH] regex/mlx5: fix RXP engines iterator size The mlx5_regex_rules_db_import function goes over all engines in the loop and program rxp rules. The iterator of the loop is called id and the variable representing the number of engines is called priv->nb_engines. The id variable is of uint8_t type while the priv->nb_engines variable is of uint32_t type. The size of the priv->nb_engines variable is much larger than the number of iterations allowed by the id type. Theoretically there may be a situation where the value of the priv->nb_engines will be greater than can be represented by 8 bits and the loop will never end. Change the type of id to uint32_t. Fixes: b34d816363b5 ("regex/mlx5: support rules import") Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Ori Kam --- drivers/regex/mlx5/mlx5_rxp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/regex/mlx5/mlx5_rxp.c b/drivers/regex/mlx5/mlx5_rxp.c index 7936a5235b..e54d2b807e 100644 --- a/drivers/regex/mlx5/mlx5_rxp.c +++ b/drivers/regex/mlx5/mlx5_rxp.c @@ -921,7 +921,7 @@ mlx5_regex_rules_db_import(struct rte_regexdev *dev, { struct mlx5_regex_priv *priv = dev->data->dev_private; struct mlx5_rxp_ctl_rules_pgm *rules = NULL; - uint8_t id; + uint32_t id; int ret; if (priv->prog_mode == MLX5_RXP_MODE_NOT_DEFINED) { -- 2.20.1