summaryrefslogtreecommitdiffstats
path: root/crypto/algif_hash.c
diff options
context:
space:
mode:
authorStephan Mueller <smueller@chronox.de>2014-11-11 05:37:07 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2014-11-12 22:14:31 +0800
commit2a6af25befd0197e805b3aa5ebfc253079ce7136 (patch)
tree2b4d6741586bfdf6290d7a8b939d91e4b9f55a92 /crypto/algif_hash.c
parent4c7912e9198b141b6cd85999d28b48cb5a037aa0 (diff)
downloadlinux-2a6af25befd0197e805b3aa5ebfc253079ce7136.tar.gz
linux-2a6af25befd0197e805b3aa5ebfc253079ce7136.tar.bz2
linux-2a6af25befd0197e805b3aa5ebfc253079ce7136.zip
crypto: algif - zeroize message digest buffer
Zeroize the buffer holding the message digest calculated for the consumer before the buffer is released by the hash AF_ALG interface handler. Signed-off-by: Stephan Mueller <smueller@chronox.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/algif_hash.c')
-rw-r--r--crypto/algif_hash.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
index 850246206b12..f75db4ce48bf 100644
--- a/crypto/algif_hash.c
+++ b/crypto/algif_hash.c
@@ -258,6 +258,8 @@ static void hash_sock_destruct(struct sock *sk)
struct alg_sock *ask = alg_sk(sk);
struct hash_ctx *ctx = ask->private;
+ memzero_explicit(ctx->result,
+ crypto_ahash_digestsize(crypto_ahash_reqtfm(&ctx->req)));
sock_kfree_s(sk, ctx->result,
crypto_ahash_digestsize(crypto_ahash_reqtfm(&ctx->req)));
sock_kfree_s(sk, ctx, ctx->len);