remove unnecessary null checks in OpenSSL usage
cover remove unnecessary null checks in OpenSSL usage
OpenSSL follows null free conventions
Stephen Hemminger (2):
nullfree: add matches for null free cases from OpenSSL crypto/openssl: remove unnecessary NULL checks before free
devtools/cocci/nullfree.cocci | 9 +++++ drivers/crypto/openssl/rte_openssl_pmd.c | 36 +++++++------------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 3 +- 3 files changed, 22 insertions(+), 26 deletions(-)
Signature · 1 line
2.41.0
PATCH 1/2 nullfree: add matches for null free cases from OpenSSL
OpenSSL functions follow the design parameter that free of NULL is ok.
--- devtools/cocci/nullfree.cocci | 9 +++++++++ 1 file changed, 9 insertions(+)
devtools/cocci/nullfree.cocci +9 -0
@@ -126,4 +126,13 @@ expression E; | - if (E != NULL) trie_free(E); + trie_free(E); +| +- if (E != NULL) EVP_PKEY_CTX_free(E); ++ EVP_PKEY_CTX_free(E); +| +- if (E != NULL) EVP_PKEY_free(E); ++ EVP_PKEY_free(E); +| +- if (E != NULL) BN_free(E); ++ BN_free(E); )
Signature · 1 line
2.41.0
PATCH 2/2 crypto/openssl: remove unnecessary NULL checks before free
In reply to Stephen HemmingerFound with nullfree.cocci
--- drivers/crypto/openssl/rte_openssl_pmd.c | 36 +++++++------------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 3 +- 2 files changed, 13 insertions(+), 26 deletions(-)
drivers/crypto/openssl/rte_openssl_pmd.c +12 -24
@@ -1957,10 +1957,8 @@ process_openssl_dsa_sign_op_evp(struct rte_crypto_op *cop, err_dsa_sign:if (params)OSSL_PARAM_free (params); -if (key_ctx) -EVP_PKEY_CTX_free (key_ctx); -if (dsa_ctx) -EVP_PKEY_CTX_free (dsa_ctx); +EVP_PKEY_CTX_free (key_ctx); +EVP_PKEY_CTX_free (dsa_ctx);return -1 ; }
@@ -2039,10 +2037,8 @@ process_openssl_dsa_verify_op_evp(struct rte_crypto_op *cop,DSA_SIG_free (sign);if (params)OSSL_PARAM_free (params); -if (key_ctx) -EVP_PKEY_CTX_free (key_ctx); -if (dsa_ctx) -EVP_PKEY_CTX_free (dsa_ctx); +EVP_PKEY_CTX_free (key_ctx); +EVP_PKEY_CTX_free (dsa_ctx);return ret; }
@@ -2294,16 +2290,12 @@ process_openssl_dh_op_evp(struct rte_crypto_op *cop, ret =0 ; err_dh: -if (pub_key) -BN_free (pub_key); -if (priv_key) -BN_free (priv_key); +BN_free (pub_key); +BN_free (priv_key);if (params)OSSL_PARAM_free (params); -if (dhpkey) -EVP_PKEY_free (dhpkey); -if (peerkey) -EVP_PKEY_free (peerkey); +EVP_PKEY_free (dhpkey); +EVP_PKEY_free (peerkey);EVP_PKEY_CTX_free (dh_ctx);
@@ -2880,17 +2872,13 @@ process_openssl_sm2_op_evp(struct rte_crypto_op *cop, ret =0 ; cop->status =RTE_CRYPTO_OP_STATUS_SUCCESS ; err_sm2: -if (kctx) -EVP_PKEY_CTX_free (kctx); +EVP_PKEY_CTX_free (kctx); -if (sctx) -EVP_PKEY_CTX_free (sctx); +EVP_PKEY_CTX_free (sctx); -if (cctx) -EVP_PKEY_CTX_free (cctx); +EVP_PKEY_CTX_free (cctx); -if (pkey) -EVP_PKEY_free (pkey); +EVP_PKEY_free (pkey);return ret; }
drivers/crypto/openssl/rte_openssl_pmd_ops.c +1 -2
@@ -1431,8 +1431,7 @@ static void openssl_reset_asym_session(struct openssl_asym_session *sess)switch (sess->xfrm_type) {case RTE_CRYPTO_ASYM_XFORM_RSA :#if (OPENSSL_VERSION_NUMBER >=0x30000000L ) -if (sess->u.r.ctx) -EVP_PKEY_CTX_free (sess->u.r.ctx); +EVP_PKEY_CTX_free (sess->u.r.ctx);#else if (sess->u.r.rsa)RSA_free (sess->u.r.rsa);
Signature · 1 line
2.41.0
Re: [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free
________________________________
From: Stephen Hemminger <[email protected]>
Sent: 02 November 2023 23:02
To: [email protected] <[email protected]>
Cc: Stephen Hemminger <[email protected]>; Ji, Kai <[email protected]>
Subject: [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free
Found with nullfree.cocci
--- drivers/crypto/openssl/rte_openssl_pmd.c | 36 +++++++------------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 3 +- 2 files changed, 13 insertions(+), 26 deletions(-)
drivers/crypto/openssl/rte_openssl_pmd.c +12 -24
@@ -1957,10 +1957,8 @@ process_openssl_dsa_sign_op_evp(struct rte_crypto_op *cop, err_dsa_sign:if (params)OSSL_PARAM_free (params); -if (key_ctx) -EVP_PKEY_CTX_free (key_ctx); -if (dsa_ctx) -EVP_PKEY_CTX_free (dsa_ctx); +EVP_PKEY_CTX_free (key_ctx); +EVP_PKEY_CTX_free (dsa_ctx);return -1 ; }
@@ -2039,10 +2037,8 @@ process_openssl_dsa_verify_op_evp(struct rte_crypto_op *cop,DSA_SIG_free (sign);if (params)OSSL_PARAM_free (params); -if (key_ctx) -EVP_PKEY_CTX_free (key_ctx); -if (dsa_ctx) -EVP_PKEY_CTX_free (dsa_ctx); +EVP_PKEY_CTX_free (key_ctx); +EVP_PKEY_CTX_free (dsa_ctx);return ret; }
@@ -2294,16 +2290,12 @@ process_openssl_dh_op_evp(struct rte_crypto_op *cop, ret =0 ; err_dh: -if (pub_key) -BN_free (pub_key); -if (priv_key) -BN_free (priv_key); +BN_free (pub_key); +BN_free (priv_key);if (params)OSSL_PARAM_free (params); -if (dhpkey) -EVP_PKEY_free (dhpkey); -if (peerkey) -EVP_PKEY_free (peerkey); +EVP_PKEY_free (dhpkey); +EVP_PKEY_free (peerkey);EVP_PKEY_CTX_free (dh_ctx);
@@ -2880,17 +2872,13 @@ process_openssl_sm2_op_evp(struct rte_crypto_op *cop, ret =0 ; cop->status =RTE_CRYPTO_OP_STATUS_SUCCESS ; err_sm2: -if (kctx) -EVP_PKEY_CTX_free (kctx); +EVP_PKEY_CTX_free (kctx); -if (sctx) -EVP_PKEY_CTX_free (sctx); +EVP_PKEY_CTX_free (sctx); -if (cctx) -EVP_PKEY_CTX_free (cctx); +EVP_PKEY_CTX_free (cctx); -if (pkey) -EVP_PKEY_free (pkey); +EVP_PKEY_free (pkey);return ret; }
drivers/crypto/openssl/rte_openssl_pmd_ops.c +1 -2
@@ -1431,8 +1431,7 @@ static void openssl_reset_asym_session(struct openssl_asym_session *sess)switch (sess->xfrm_type) {case RTE_CRYPTO_ASYM_XFORM_RSA :#if (OPENSSL_VERSION_NUMBER >=0x30000000L ) -if (sess->u.r.ctx) -EVP_PKEY_CTX_free (sess->u.r.ctx); +EVP_PKEY_CTX_free (sess->u.r.ctx);#else if (sess->u.r.rsa)RSA_free (sess->u.r.rsa);
--
2.41.0
Quoted 10 lines
OpenSSL follows null free conventions
Stephen Hemminger (2):
nullfree: add matches for null free cases from OpenSSLcrypto/openssl: remove unnecessary NULL checks before freedevtools/cocci/nullfree.cocci | 9 +++++ drivers/crypto/openssl/rte_openssl_pmd.c | 36 +++++++------------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 3 +- 3 files changed, 22 insertions(+), 26 deletions(-)
Series Applied to dpdk-next-crypto
Thanks.