[PATCH] crypto_free_tfm callers do not need to check for NULL
From: Jesper Juhl (jesper.juhl_at_gmail.com)
Date: 08/30/05
- Previous message: John Barkas: "[PATCH] checksum.c & csum_partial_copy.c ,2.6.12.5"
- Next in thread: J. Bruce Fields: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Reply: J. Bruce Fields: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Reply: Sridhar Samudrala: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Reply: Herbert Xu: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
To: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org> Date: Tue, 30 Aug 2005 22:45:54 +0200
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.
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
---
./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(-)
--- linux-2.6.13-orig/./drivers/net/wireless/airo.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./drivers/net/wireless/airo.c 2005-08-30 18:08:15.000000000 +0200
@@ -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 );
--- linux-2.6.13-orig/./fs/nfsd/nfs4recover.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./fs/nfsd/nfs4recover.c 2005-08-30 18:08:25.000000000 +0200
@@ -114,8 +114,7 @@ nfs4_make_rec_clidname(char *dname, stru
kfree(cksum.data);
status = nfs_ok;
out:
- if (tfm)
- crypto_free_tfm(tfm);
+ crypto_free_tfm(tfm);
return status;
}
--- linux-2.6.13-orig/./net/ipv4/ah4.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv4/ah4.c 2005-08-30 18:10:10.000000000 +0200
@@ -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_state
if (!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);
}
--- linux-2.6.13-orig/./net/ipv4/esp4.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv4/esp4.c 2005-08-30 18:10:49.000000000 +0200
@@ -343,22 +343,14 @@ static void esp_destroy(struct xfrm_stat
if (!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);
}
--- linux-2.6.13-orig/./net/ipv4/ipcomp.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv4/ipcomp.c 2005-08-30 18:11:14.000000000 +0200
@@ -345,8 +345,7 @@ static void ipcomp_free_tfms(struct cryp
for_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);
}
--- linux-2.6.13-orig/./net/ipv6/addrconf.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv6/addrconf.c 2005-08-30 18:11:34.000000000 +0200
@@ -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
--- linux-2.6.13-orig/./net/ipv6/ah6.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv6/ah6.c 2005-08-30 18:12:03.000000000 +0200
@@ -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_stat
if (!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);
}
--- linux-2.6.13-orig/./net/ipv6/esp6.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv6/esp6.c 2005-08-30 18:12:25.000000000 +0200
@@ -277,22 +277,14 @@ static void esp6_destroy(struct xfrm_sta
if (!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);
}
--- linux-2.6.13-orig/./net/ipv6/ipcomp6.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/ipv6/ipcomp6.c 2005-08-30 18:12:34.000000000 +0200
@@ -341,8 +341,7 @@ static void ipcomp6_free_tfms(struct cry
for_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);
}
--- linux-2.6.13-orig/./net/sctp/socket.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/sctp/socket.c 2005-08-30 18:12:59.000000000 +0200
@@ -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;
}
--- linux-2.6.13-orig/./net/sunrpc/auth_gss/gss_krb5_crypto.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/sunrpc/auth_gss/gss_krb5_crypto.c 2005-08-30 18:13:05.000000000 +0200
@@ -199,8 +199,7 @@ make_checksum(s32 cksumtype, char *heade
crypto_digest_final(tfm, cksum->data);
code = 0;
out:
- if (tfm)
- crypto_free_tfm(tfm);
+ crypto_free_tfm(tfm);
return code;
}
--- linux-2.6.13-orig/./net/sunrpc/auth_gss/gss_krb5_mech.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/sunrpc/auth_gss/gss_krb5_mech.c 2005-08-30 18:13:48.000000000 +0200
@@ -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);
}
--- linux-2.6.13-orig/./net/sunrpc/auth_gss/gss_spkm3_mech.c 2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13/./net/sunrpc/auth_gss/gss_spkm3_mech.c 2005-08-30 18:14:18.000000000 +0200
@@ -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);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Previous message: John Barkas: "[PATCH] checksum.c & csum_partial_copy.c ,2.6.12.5"
- Next in thread: J. Bruce Fields: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Reply: J. Bruce Fields: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Reply: Sridhar Samudrala: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Reply: Herbert Xu: "Re: [PATCH] crypto_free_tfm callers do not need to check for NULL"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
- Resend: [PATCH] crypto_free_tfm callers no longer need to check for NULL
... This patch removes the redundant NULL checks and also a few similar checks ...
When I posted the patch to LKML it drew the ... if (ahp) { ... send the line
"unsubscribe linux-kernel" in ... (Linux-Kernel) - Re: [PATCH 2/4] resource release cleanup in net/ (take 2)
... On Sun, 1 May 2005, Jesper Juhl wrote: ... >> Jesper, I'd suggest that
you left whitespaces for a separate patch, it ... better to have as small a patch
as possible for reviewing. ... if (ahp) { ... (Linux-Kernel) - Re: [parisc-linux] Re: [PATCH 3/9] mm: parisc pte atomicity
... using your own tmpalias area sounds much better than getting ... I've simply
not wrapped my head around the races, ... it looks like we agree that my patch is
necessary and valid as is; ... send the line "unsubscribe linux-kernel" in ... (Linux-Kernel) - Re: keyboard - was: Re: Linux 2.6.0-test4
... >> I was able to get the key unstuck by switching back and forth between ...
I rebuild my kernel including your patch; ... I'll get back to you once I verify
that the problem doesn't occur ... send the line "unsubscribe linux-kernel" in ...
(Linux-Kernel) - Re: [PATCH 4/5] random periodicity detection fix
... >> WAY overestimating input entropy. ... > My patch did the
opposite of your patch: ... 5/5 is a step in that direction, but the filtering is ...
send the line "unsubscribe linux-kernel" in ... (Linux-Kernel)