summaryrefslogtreecommitdiffstats
path: root/fs/crypto
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-10-09 16:34:17 -0700
committerEric Biggers <ebiggers@google.com>2019-10-21 13:22:08 -0700
commit6f99756dab5ba23e5dc74cd4ad24edd53af39beb (patch)
tree6a804de11a982e65238d1e3b8271427e31c1d580 /fs/crypto
parent1565bdad59e97f31cfc7b065bc0fc77e9549e62d (diff)
downloadlinux-stable-6f99756dab5ba23e5dc74cd4ad24edd53af39beb.tar.gz
linux-stable-6f99756dab5ba23e5dc74cd4ad24edd53af39beb.tar.bz2
linux-stable-6f99756dab5ba23e5dc74cd4ad24edd53af39beb.zip
fscrypt: zeroize fscrypt_info before freeing
memset the struct fscrypt_info to zero before freeing. This isn't really needed currently, since there's no secret key directly in the fscrypt_info. But there's a decent chance that someone will add such a field in the future, e.g. in order to use an API that takes a raw key such as siphash(). So it's good to do this as a hardening measure. Signed-off-by: Eric Biggers <ebiggers@google.com>
Diffstat (limited to 'fs/crypto')
-rw-r--r--fs/crypto/keysetup.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/crypto/keysetup.c b/fs/crypto/keysetup.c
index 8eb5a0e762ec..b03b33643e4b 100644
--- a/fs/crypto/keysetup.c
+++ b/fs/crypto/keysetup.c
@@ -327,6 +327,7 @@ static void put_crypt_info(struct fscrypt_info *ci)
key_invalidate(key);
key_put(key);
}
+ memzero_explicit(ci, sizeof(*ci));
kmem_cache_free(fscrypt_info_cachep, ci);
}