From: Michael Baum Date: Thu, 29 Jul 2021 06:50:00 +0000 (+0300) Subject: crypto/mlx5: fix leaks on probing failure X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=56ec985f3141a3c01cf5d8cef2f26480abb83377;p=dpdk.git 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 --- 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,