* [PATCH 0/2] remove unnecessary null checks in OpenSSL usage @ 2023-11-02 23:02 Stephen Hemminger 2023-11-02 23:02 ` [PATCH 1/2] nullfree: add matches for null free cases from OpenSSL Stephen Hemminger ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Stephen Hemminger @ 2023-11-02 23:02 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger 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(-) -- 2.41.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] nullfree: add matches for null free cases from OpenSSL 2023-11-02 23:02 [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Stephen Hemminger @ 2023-11-02 23:02 ` Stephen Hemminger 2023-11-02 23:02 ` [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free Stephen Hemminger 2023-11-09 20:12 ` [EXT] [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Akhil Goyal 2 siblings, 0 replies; 5+ messages in thread From: Stephen Hemminger @ 2023-11-02 23:02 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger OpenSSL functions follow the design parameter that free of NULL is ok. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- devtools/cocci/nullfree.cocci | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devtools/cocci/nullfree.cocci b/devtools/cocci/nullfree.cocci index 9ca3fc2864..c58aad4fb7 100644 --- a/devtools/cocci/nullfree.cocci +++ b/devtools/cocci/nullfree.cocci @@ -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); ) -- 2.41.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free 2023-11-02 23:02 [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Stephen Hemminger 2023-11-02 23:02 ` [PATCH 1/2] nullfree: add matches for null free cases from OpenSSL Stephen Hemminger @ 2023-11-02 23:02 ` Stephen Hemminger 2023-11-07 14:12 ` Ji, Kai 2023-11-09 20:12 ` [EXT] [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Akhil Goyal 2 siblings, 1 reply; 5+ messages in thread From: Stephen Hemminger @ 2023-11-02 23:02 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Kai Ji Found with nullfree.cocci Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/crypto/openssl/rte_openssl_pmd.c | 36 +++++++------------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 3 +- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index c234882417..090320602d 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -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; } diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index 2862c294a9..419a767817 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -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 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free 2023-11-02 23:02 ` [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free Stephen Hemminger @ 2023-11-07 14:12 ` Ji, Kai 0 siblings, 0 replies; 5+ messages in thread From: Ji, Kai @ 2023-11-07 14:12 UTC (permalink / raw) To: Stephen Hemminger, dev [-- Attachment #1: Type: text/plain, Size: 3555 bytes --] Acked-by: Kai Ji <kai.ji@intel.com> ________________________________ From: Stephen Hemminger <stephen@networkplumber.org> Sent: 02 November 2023 23:02 To: dev@dpdk.org <dev@dpdk.org> Cc: Stephen Hemminger <stephen@networkplumber.org>; Ji, Kai <kai.ji@intel.com> Subject: [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free Found with nullfree.cocci Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/crypto/openssl/rte_openssl_pmd.c | 36 +++++++------------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 3 +- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index c234882417..090320602d 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -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; } diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index 2862c294a9..419a767817 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -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 [-- Attachment #2: Type: text/html, Size: 7679 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [EXT] [PATCH 0/2] remove unnecessary null checks in OpenSSL usage 2023-11-02 23:02 [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Stephen Hemminger 2023-11-02 23:02 ` [PATCH 1/2] nullfree: add matches for null free cases from OpenSSL Stephen Hemminger 2023-11-02 23:02 ` [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free Stephen Hemminger @ 2023-11-09 20:12 ` Akhil Goyal 2 siblings, 0 replies; 5+ messages in thread From: Akhil Goyal @ 2023-11-09 20:12 UTC (permalink / raw) To: Stephen Hemminger, dev > 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(-) Series Applied to dpdk-next-crypto Thanks. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-11-09 20:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-11-02 23:02 [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Stephen Hemminger 2023-11-02 23:02 ` [PATCH 1/2] nullfree: add matches for null free cases from OpenSSL Stephen Hemminger 2023-11-02 23:02 ` [PATCH 2/2] crypto/openssl: remove unnecessary NULL checks before free Stephen Hemminger 2023-11-07 14:12 ` Ji, Kai 2023-11-09 20:12 ` [EXT] [PATCH 0/2] remove unnecessary null checks in OpenSSL usage Akhil Goyal
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).