summary refs log tree commit diff
path: root/crypto
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
parent4c7912e9198b141b6cd85999d28b48cb5a037aa0 (diff)
downloadlinux-2a6af25befd0197e805b3aa5ebfc253079ce7136.tar.gz
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')
-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);