]> git.droids-corp.org - dpdk.git/commitdiff
regex/mlx5: fix RXP engines iterator size
authorMichael Baum <michaelba@nvidia.com>
Wed, 18 Nov 2020 17:00:06 +0000 (17:00 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 22 Nov 2020 12:19:06 +0000 (13:19 +0100)
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 <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
drivers/regex/mlx5/mlx5_rxp.c

index 7936a5235ba0e662b1c84975c1572e2e66c52fe9..e54d2b807ef3faed4483b14b43b02ff8ebd4d721 100644 (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) {