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: b34d816363 ("regex/mlx5: support rules import")
Cc: stable@dpdk.org

Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
This commit is contained in:
Michael Baum 2020-11-18 17:00:06 +00:00 committed by Thomas Monjalon
parent 3423d02b6d
commit a07079b1a6

View File

@ -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) {