When rxp_create_mkey() failed the function return, 'ptr' was not
freed which caused a memory leak.

Fixes: 9fa82d287f65 ("regex/mlx5: move RXP to CrSpace")

Signed-off-by: Weiguo Li <liw...@foxmail.com>
---
 drivers/regex/mlx5/mlx5_rxp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/regex/mlx5/mlx5_rxp.c b/drivers/regex/mlx5/mlx5_rxp.c
index ed3af15e40..4da29a2a06 100644
--- a/drivers/regex/mlx5/mlx5_rxp.c
+++ b/drivers/regex/mlx5/mlx5_rxp.c
@@ -117,8 +117,10 @@ mlx5_regex_rules_db_import(struct rte_regexdev *dev,
        rte_memcpy(ptr, rule_db, rule_db_len);
        /* Register umem and create rof mkey. */
        ret = rxp_create_mkey(priv, ptr, rule_db_len, /*access=*/7, &mkey);
-       if (ret < 0)
+       if (ret < 0) {
+               rte_free(ptr);
                return ret;
+       }
 
        for (id = 0; id < priv->nb_engines; id++) {
                ret = mlx5_devx_regex_rules_program(priv->cdev->ctx, id,
-- 
2.25.1

Reply via email to