diff options
author | David S. Miller <davem@nuts.davemloft.net> | 2004-09-14 08:21:40 -0700 |
---|---|---|
committer | David S. Miller <davem@nuts.davemloft.net> | 2004-09-14 08:21:40 -0700 |
commit | 3749f8cadd561de83f42cc87682f728d4a970ac0 (patch) | |
tree | 1c4704062961a50b41acf717f69ca707b34c0b4b /crypto | |
parent | b7ba1003428ccac10270554c4d4b85491510b73d (diff) | |
download | history-3749f8cadd561de83f42cc87682f728d4a970ac0.tar.gz |
[CRYPTO]: Zero out tfm before freeing in crypto_free_tfm().
Based upon discussions with Ulrich Kuehn
(ukuehn@acm.org)
Signed-off-by: James Morris <jmorris@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/api.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crypto/api.c b/crypto/api.c index 6f0e625714bf24..394169a8577d06 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -155,8 +155,12 @@ out: void crypto_free_tfm(struct crypto_tfm *tfm) { + struct crypto_alg *alg = tfm->__crt_alg; + int size = sizeof(*tfm) + alg->cra_ctxsize; + crypto_exit_ops(tfm); - crypto_alg_put(tfm->__crt_alg); + crypto_alg_put(alg); + memset(tfm, 0, size); kfree(tfm); } |