From 56ec985f3141a3c01cf5d8cef2f26480abb83377 Mon Sep 17 00:00:00 2001 From: Michael Baum Date: Thu, 29 Jul 2021 09:50:00 +0300 Subject: [PATCH] crypto/mlx5: fix leaks on probing failure In crypto driver probing, there are two validations after context allocation. When one of them fails, the context structure was not freed what caused a memory leak. Free it. Fixes: debb27ea3442 ("crypto/mlx5: create login object using DevX") Fixes: e8db4413cba5 ("crypto/mlx5: add keytag configuration") Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/crypto/mlx5/mlx5_crypto.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c index ea734f4d5c..b3d5200ca3 100644 --- a/drivers/crypto/mlx5/mlx5_crypto.c +++ b/drivers/crypto/mlx5/mlx5_crypto.c @@ -1021,12 +1021,14 @@ mlx5_crypto_dev_probe(struct rte_device *dev) ret = mlx5_crypto_parse_devargs(dev->devargs, &devarg_prms); if (ret) { DRV_LOG(ERR, "Failed to parse devargs."); + claim_zero(mlx5_glue->close_device(ctx)); return -rte_errno; } login = mlx5_devx_cmd_create_crypto_login_obj(ctx, &devarg_prms.login_attr); if (login == NULL) { DRV_LOG(ERR, "Failed to configure login."); + claim_zero(mlx5_glue->close_device(ctx)); return -rte_errno; } crypto_dev = rte_cryptodev_pmd_create(ibv->name, dev, -- 2.20.1