[CRYPTO]: crypto_free_tfm() callers no longer 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 succesfuly compile tested this patch, and a kernel with the patch applied boots and runs just fine. When I posted the patch to LKML (and other lists/people on Cc) it drew the following comments : J. Bruce Fields commented "I've no problem with the auth_gss or nfsv4 bits.--b." Sridhar Samudrala said "sctp change looks fine." Herbert Xu signed off on the patch. So, I guess this is ready to be dropped into -mm and eventually mainline. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5170dbebbb
commit
573dbd9596
14 changed files with 44 additions and 88 deletions
|
@ -2403,8 +2403,7 @@ void stop_airo_card( struct net_device *dev, int freeres )
|
|||
}
|
||||
}
|
||||
#ifdef MICSUPPORT
|
||||
if (ai->tfm)
|
||||
crypto_free_tfm(ai->tfm);
|
||||
crypto_free_tfm(ai->tfm);
|
||||
#endif
|
||||
del_airo_dev( dev );
|
||||
free_netdev( dev );
|
||||
|
|
|
@ -114,8 +114,7 @@ nfs4_make_rec_clidname(char *dname, struct xdr_netobj *clname)
|
|||
kfree(cksum.data);
|
||||
status = nfs_ok;
|
||||
out:
|
||||
if (tfm)
|
||||
crypto_free_tfm(tfm);
|
||||
crypto_free_tfm(tfm);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -263,10 +263,8 @@ static int ah_init_state(struct xfrm_state *x)
|
|||
|
||||
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 *x)
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -343,22 +343,14 @@ static void esp_destroy(struct xfrm_state *x)
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -345,8 +345,7 @@ static void ipcomp_free_tfms(struct crypto_tfm **tfms)
|
|||
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -401,10 +401,8 @@ static int ah6_init_state(struct xfrm_state *x)
|
|||
|
||||
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;
|
||||
|
@ -417,14 +415,10 @@ static void ah6_destroy(struct xfrm_state *x)
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -276,22 +276,14 @@ static void esp6_destroy(struct xfrm_state *x)
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -341,8 +341,7 @@ static void ipcomp6_free_tfms(struct crypto_tfm **tfms)
|
|||
|
||||
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);
|
||||
}
|
||||
|
|
|
@ -193,8 +193,7 @@ static void sctp_endpoint_destroy(struct sctp_endpoint *ep)
|
|||
sctp_unhash_endpoint(ep);
|
||||
|
||||
/* Free up the HMAC transform. */
|
||||
if (sctp_sk(ep->base.sk)->hmac)
|
||||
sctp_crypto_free_tfm(sctp_sk(ep->base.sk)->hmac);
|
||||
sctp_crypto_free_tfm(sctp_sk(ep->base.sk)->hmac);
|
||||
|
||||
/* Cleanup. */
|
||||
sctp_inq_free(&ep->base.inqueue);
|
||||
|
|
|
@ -4194,8 +4194,7 @@ int sctp_inet_listen(struct socket *sock, int backlog)
|
|||
sctp_release_sock(sk);
|
||||
return err;
|
||||
cleanup:
|
||||
if (tfm)
|
||||
sctp_crypto_free_tfm(tfm);
|
||||
sctp_crypto_free_tfm(tfm);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
|
@ -199,8 +199,7 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
|
|||
crypto_digest_final(tfm, cksum->data);
|
||||
code = 0;
|
||||
out:
|
||||
if (tfm)
|
||||
crypto_free_tfm(tfm);
|
||||
crypto_free_tfm(tfm);
|
||||
return code;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue