crypto_free_tfm callers do not need to check for NULL
Subsystems (8)
PATCH 1/1 crypto_free_tfm callers do not need to check for NULL
Since the patch to add a NULL short-circuit to crypto_free_tfm() went in, there's no longer any need for callers of that function to check for NULL. This patch removes the redundant NULL checks and also a few similar checks for NULL before calls to kfree() that I ran into while doing the crypto_free_tfm bits.
I've posted similar patches in the past, but was asked to first until the short-circuit patch moved from -mm to mainline - and since it is now firmly there in 2.6.13 I assume there's no problem there anymore. I was also asked previously to make the patch against mainline and not -mm, so this patch is against 2.6.13.
Feedback, ACK, NACK, etc welcome.
Sorry about the large Cc list, but I wanted to include everyone involved with the code I change.
Please keep me on Cc.
---
./drivers/net/wireless/airo.c | 3 +-- ./fs/nfsd/nfs4recover.c | 3 +-- ./net/ipv4/ah4.c | 18 ++++++------------ ./net/ipv4/esp4.c | 24 ++++++++---------------- ./net/ipv4/ipcomp.c | 3 +-- ./net/ipv6/addrconf.c | 6 ++---- ./net/ipv6/ah6.c | 18 ++++++------------ ./net/ipv6/esp6.c | 24 ++++++++---------------- ./net/ipv6/ipcomp6.c | 3 +-- ./net/sctp/socket.c | 3 +-- ./net/sunrpc/auth_gss/gss_krb5_crypto.c | 3 +-- ./net/sunrpc/auth_gss/gss_krb5_mech.c | 9 +++------ ./net/sunrpc/auth_gss/gss_spkm3_mech.c | 12 ++++-------- 13 files changed, 43 insertions(+), 86 deletions(-)
./drivers/net/wireless/airo.c +1 -2
@@ -2403,8 +2403,7 @@ void stop_airo_card( struct net_device * } }#ifdef MICSUPPORT -if (ai->tfm) -crypto_free_tfm (ai->tfm); +crypto_free_tfm (ai->tfm);#endif del_airo_dev ( dev );free_netdev ( dev );
./fs/nfsd/nfs4recover.c +1 -2
@@ -114,8 +114,7 @@ nfs4_make_rec_clidname(char *dname, strukfree (cksum.data); status = nfs_ok; out: -if (tfm) -crypto_free_tfm (tfm); +crypto_free_tfm (tfm);return status; }
./net/ipv4/ah4.c +6 -12
@@ -263,10 +263,8 @@ static int ah_init_state(struct xfrm_sta error:if (ahp) { -if (ahp->work_icv) -kfree (ahp->work_icv); -if (ahp->tfm) -crypto_free_tfm (ahp->tfm); +kfree (ahp->work_icv); +crypto_free_tfm (ahp->tfm);kfree (ahp); }return -EINVAL ;
@@ -279,14 +277,10 @@ static void ah_destroy(struct xfrm_stateif (!ahp)return ; -if (ahp->work_icv) { -kfree (ahp->work_icv); - ahp->work_icv =NULL ; - } -if (ahp->tfm) { -crypto_free_tfm (ahp->tfm); - ahp->tfm =NULL ; - } +kfree (ahp->work_icv); + ahp->work_icv =NULL ; +crypto_free_tfm (ahp->tfm); + ahp->tfm =NULL ;kfree (ahp); }
./net/ipv4/esp4.c +8 -16
@@ -343,22 +343,14 @@ static void esp_destroy(struct xfrm_statif (!esp)return ; -if (esp->conf.tfm) { -crypto_free_tfm (esp->conf.tfm); - esp->conf.tfm =NULL ; - } -if (esp->conf.ivec) { -kfree (esp->conf.ivec); - esp->conf.ivec =NULL ; - } -if (esp->auth.tfm) { -crypto_free_tfm (esp->auth.tfm); - esp->auth.tfm =NULL ; - } -if (esp->auth.work_icv) { -kfree (esp->auth.work_icv); - esp->auth.work_icv =NULL ; - } +crypto_free_tfm (esp->conf.tfm); + esp->conf.tfm =NULL ; +kfree (esp->conf.ivec); + esp->conf.ivec =NULL ; +crypto_free_tfm (esp->auth.tfm); + esp->auth.tfm =NULL ; +kfree (esp->auth.work_icv); + esp->auth.work_icv =NULL ;kfree (esp); }
./net/ipv4/ipcomp.c +1 -2
@@ -345,8 +345,7 @@ static void ipcomp_free_tfms(struct crypfor_each_cpu (cpu) {struct crypto_tfm *tfm = *per_cpu_ptr (tfms, cpu); -if (tfm) -crypto_free_tfm (tfm); +crypto_free_tfm (tfm); }free_percpu (tfms); }
./net/ipv6/addrconf.c +2 -4
@@ -3593,10 +3593,8 @@ void __exit addrconf_cleanup(void)rtnl_unlock ();#ifdef CONFIG_IPV6_PRIVACY -if (likely (md5_tfm !=NULL )) { -crypto_free_tfm (md5_tfm); - md5_tfm =NULL ; - } +crypto_free_tfm (md5_tfm); + md5_tfm =NULL ;#endif #ifdef CONFIG_PROC_FS
./net/ipv6/ah6.c +6 -12
@@ -402,10 +402,8 @@ static int ah6_init_state(struct xfrm_st error:if (ahp) { -if (ahp->work_icv) -kfree (ahp->work_icv); -if (ahp->tfm) -crypto_free_tfm (ahp->tfm); +kfree (ahp->work_icv); +crypto_free_tfm (ahp->tfm);kfree (ahp); }return -EINVAL ;
@@ -418,14 +416,10 @@ static void ah6_destroy(struct xfrm_statif (!ahp)return ; -if (ahp->work_icv) { -kfree (ahp->work_icv); - ahp->work_icv =NULL ; - } -if (ahp->tfm) { -crypto_free_tfm (ahp->tfm); - ahp->tfm =NULL ; - } +kfree (ahp->work_icv); + ahp->work_icv =NULL ; +crypto_free_tfm (ahp->tfm); + ahp->tfm =NULL ;kfree (ahp); }
./net/ipv6/esp6.c +8 -16
@@ -277,22 +277,14 @@ static void esp6_destroy(struct xfrm_staif (!esp)return ; -if (esp->conf.tfm) { -crypto_free_tfm (esp->conf.tfm); - esp->conf.tfm =NULL ; - } -if (esp->conf.ivec) { -kfree (esp->conf.ivec); - esp->conf.ivec =NULL ; - } -if (esp->auth.tfm) { -crypto_free_tfm (esp->auth.tfm); - esp->auth.tfm =NULL ; - } -if (esp->auth.work_icv) { -kfree (esp->auth.work_icv); - esp->auth.work_icv =NULL ; - } +crypto_free_tfm (esp->conf.tfm); + esp->conf.tfm =NULL ; +kfree (esp->conf.ivec); + esp->conf.ivec =NULL ; +crypto_free_tfm (esp->auth.tfm); + esp->auth.tfm =NULL ; +kfree (esp->auth.work_icv); + esp->auth.work_icv =NULL ;kfree (esp); }
./net/ipv6/ipcomp6.c +1 -2
@@ -341,8 +341,7 @@ static void ipcomp6_free_tfms(struct cryfor_each_cpu (cpu) {struct crypto_tfm *tfm = *per_cpu_ptr (tfms, cpu); -if (tfm) -crypto_free_tfm (tfm); +crypto_free_tfm (tfm); }free_percpu (tfms); }
./net/sctp/socket.c +1 -2
@@ -4194,8 +4194,7 @@ out:sctp_release_sock (sk);return err; cleanup: -if (tfm) -sctp_crypto_free_tfm (tfm); +sctp_crypto_free_tfm (tfm); goto out; }
./net/sunrpc/auth_gss/gss_krb5_crypto.c +1 -2
@@ -199,8 +199,7 @@ make_checksum(s32 cksumtype, char *headecrypto_digest_final (tfm, cksum->data); code =0 ; out: -if (tfm) -crypto_free_tfm (tfm); +crypto_free_tfm (tfm);return code; }
./net/sunrpc/auth_gss/gss_krb5_mech.c +3 -6
@@ -185,12 +185,9 @@ static void gss_delete_sec_context_kerberos(void *internal_ctx) {struct krb5_ctx *kctx = internal_ctx; -if (kctx->seq) -crypto_free_tfm (kctx->seq); -if (kctx->enc) -crypto_free_tfm (kctx->enc); -if (kctx->mech_used.data) -kfree (kctx->mech_used.data); +crypto_free_tfm (kctx->seq); +crypto_free_tfm (kctx->enc); +kfree (kctx->mech_used.data);kfree (kctx); }
./net/sunrpc/auth_gss/gss_spkm3_mech.c +4 -8
@@ -214,14 +214,10 @@ static void gss_delete_sec_context_spkm3(void *internal_ctx) {struct spkm3_ctx *sctx = internal_ctx; -if (sctx->derived_integ_key) -crypto_free_tfm (sctx->derived_integ_key); -if (sctx->derived_conf_key) -crypto_free_tfm (sctx->derived_conf_key); -if (sctx->share_key.data) -kfree (sctx->share_key.data); -if (sctx->mech_used.data) -kfree (sctx->mech_used.data); +crypto_free_tfm (sctx->derived_integ_key); +crypto_free_tfm (sctx->derived_conf_key); +kfree (sctx->share_key.data); +kfree (sctx->mech_used.data);kfree (sctx); }
Quoted 2 lines · Jesper Juhl
Since the patch to add a NULL short-circuit to
crypto_free_tfm()went in, there's no longer any need for callers of that function to check for NULL.
...
Quoted 1 line
Feedback, ACK, NACK, etc welcome.
I've no problem with the auth_gss or nfsv4 bits.--b.
Quoted 6 lines · Jesper Juhl
Since the patch to add a NULL short-circuit to
crypto_free_tfm()went in, there's no longer any need for callers of that function to check for NULL. This patch removes the redundant NULL checks and also a few similar checks for NULL before calls tokfree()that I ran into while doing thecrypto_free_tfmbits.
Quoted 7 lines
I've posted similar patches in the past, but was asked to first until the short-circuit patch moved from -mm to mainline - and since it is now firmly there in 2.6.13 I assume there's no problem there anymore. I was also asked previously to make the patch against mainline and not -mm, so this patch is against 2.6.13.
Feedback, ACK, NACK, etc welcome.
sctp change looks fine.
A similar check in sctp_endpoint_destroy() can also be removed.
Thanks
Sridhar
Quoted 13 lines · Sridhar Samudrala
Quoted 12 lines · Jesper Juhl
Since the patch to add a NULL short-circuit to
crypto_free_tfm()went in, there's no longer any need for callers of that function to check for NULL. This patch removes the redundant NULL checks and also a few similar checks for NULL before calls tokfree()that I ran into while doing thecrypto_free_tfmbits.I've posted similar patches in the past, but was asked to first until the short-circuit patch moved from -mm to mainline - and since it is now firmly there in 2.6.13 I assume there's no problem there anymore. I was also asked previously to make the patch against mainline and not -mm, so this patch is against 2.6.13.
Quoted 5 lines
Quoted 1 line
Feedback, ACK, NACK, etc welcome.
sctp change looks fine.
A similar check insctp_endpoint_destroy()can also be removed.
Thanks, I'll remember that and either update the patch or send a small incremental one later.
Signature · 3 lines
Jesper Juhl <[email protected]> Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html Plain text mails only, please http://www.expita.com/nomime.html
Herbert Xu
maintainerQuoted 6 lines · Jesper Juhl
I've posted similar patches in the past, but was asked to first until the short-circuit patch moved from -mm to mainline - and since it is now firmly there in 2.6.13 I assume there's no problem there anymore. I was also asked previously to make the patch against mainline and not -mm, so this patch is against 2.6.13.
Thanks for you work and patience Jesper, this patch looks good to me.
Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt