crypto/openssl: fix memory leak

Message ID 96b2fd6a6341603426ad79f71c4bcf1342460e71.1684341281.git.gmuthukrishn@marvell.com (mailing list archive)
State Not Applicable, archived
Delegated to: akhil goyal
Headers
Series crypto/openssl: fix memory leak |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing fail Testing issues
ci/intel-Functional success Functional PASS

Commit Message

Gowrishankar Muthukrishnan May 17, 2023, 4:44 p.m. UTC
  Memory allocated through OPENSSL_malloc should be freed only
through OPENSSL_free.

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
 drivers/crypto/openssl/rte_openssl_pmd.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Akhil Goyal May 17, 2023, 4:48 p.m. UTC | #1
> Subject: [PATCH] crypto/openssl: fix memory leak
> 
> Memory allocated through OPENSSL_malloc should be freed only
> through OPENSSL_free.
> 
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Patch already submitted.
https://patches.dpdk.org/project/dpdk/patch/20230511135944.142416-1-ciara.power@intel.com/
  
Ji, Kai May 17, 2023, 4:49 p.m. UTC | #2
Hi gowrishankar,

Is that the same fix ? 
https://patches.dpdk.org/project/dpdk/patch/20230511135944.142416-1-ciara.power@intel.com/

regards

Kai 

> -----Original Message-----
> From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> Sent: Wednesday, May 17, 2023 5:45 PM
> To: dev@dpdk.org
> Cc: anoobj@marvell.com; Akhil Goyal <gakhil@marvell.com>; Ji, Kai
> <kai.ji@intel.com>; Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> Subject: [PATCH] crypto/openssl: fix memory leak
> 
> Memory allocated through OPENSSL_malloc should be freed only through
> OPENSSL_free.
> 
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
> ---
>  drivers/crypto/openssl/rte_openssl_pmd.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c
> b/drivers/crypto/openssl/rte_openssl_pmd.c
> index 384d262621..f65fbca300 100644
> --- a/drivers/crypto/openssl/rte_openssl_pmd.c
> +++ b/drivers/crypto/openssl/rte_openssl_pmd.c
> @@ -1927,7 +1927,7 @@ process_openssl_dsa_sign_op_evp(struct rte_crypto_op
> *cop,
> 
>  	if (EVP_PKEY_sign(dsa_ctx, dsa_sign_data, &outlen, op->message.data,
>  						op->message.length) <= 0) {
> -		free(dsa_sign_data);
> +		OPENSSL_free(dsa_sign_data);
>  		goto err_dsa_sign;
>  	}
> 
> @@ -1935,7 +1935,7 @@ process_openssl_dsa_sign_op_evp(struct rte_crypto_op
> *cop,
>  	DSA_SIG *sign = d2i_DSA_SIG(NULL, &dsa_sign_data_p, outlen);
>  	if (!sign) {
>  		OPENSSL_LOG(ERR, "%s:%d\n", __func__, __LINE__);
> -		free(dsa_sign_data);
> +		OPENSSL_free(dsa_sign_data);
>  		goto err_dsa_sign;
>  	} else {
>  		const BIGNUM *r = NULL, *s = NULL;
> @@ -1947,7 +1947,7 @@ process_openssl_dsa_sign_op_evp(struct rte_crypto_op
> *cop,
>  	}
> 
>  	DSA_SIG_free(sign);
> -	free(dsa_sign_data);
> +	OPENSSL_free(dsa_sign_data);
>  	return 0;
> 
>  err_dsa_sign:
> --
> 2.25.1
  

Patch

diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index 384d262621..f65fbca300 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1927,7 +1927,7 @@  process_openssl_dsa_sign_op_evp(struct rte_crypto_op *cop,
 
 	if (EVP_PKEY_sign(dsa_ctx, dsa_sign_data, &outlen, op->message.data,
 						op->message.length) <= 0) {
-		free(dsa_sign_data);
+		OPENSSL_free(dsa_sign_data);
 		goto err_dsa_sign;
 	}
 
@@ -1935,7 +1935,7 @@  process_openssl_dsa_sign_op_evp(struct rte_crypto_op *cop,
 	DSA_SIG *sign = d2i_DSA_SIG(NULL, &dsa_sign_data_p, outlen);
 	if (!sign) {
 		OPENSSL_LOG(ERR, "%s:%d\n", __func__, __LINE__);
-		free(dsa_sign_data);
+		OPENSSL_free(dsa_sign_data);
 		goto err_dsa_sign;
 	} else {
 		const BIGNUM *r = NULL, *s = NULL;
@@ -1947,7 +1947,7 @@  process_openssl_dsa_sign_op_evp(struct rte_crypto_op *cop,
 	}
 
 	DSA_SIG_free(sign);
-	free(dsa_sign_data);
+	OPENSSL_free(dsa_sign_data);
 	return 0;
 
 err_dsa_sign: