diff options
author | Eric Biggers <ebiggers@google.com> | 2019-10-09 16:34:17 -0700 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2019-10-21 13:22:08 -0700 |
commit | 6f99756dab5ba23e5dc74cd4ad24edd53af39beb (patch) | |
tree | 6a804de11a982e65238d1e3b8271427e31c1d580 /fs | |
parent | 1565bdad59e97f31cfc7b065bc0fc77e9549e62d (diff) | |
download | linux-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')
-rw-r--r-- | fs/crypto/keysetup.c | 1 |
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); } |