OpenCloudOS-Kernel/fs/crypto
Eric Biggers d60b5b7854 fscrypt: fix dereference of NULL user_key_payload
When an fscrypt-encrypted file is opened, we request the file's master
key from the keyrings service as a logon key, then access its payload.
However, a revoked key has a NULL payload, and we failed to check for
this.  request_key() *does* skip revoked keys, but there is still a
window where the key can be revoked before we acquire its semaphore.

Fix it by checking for a NULL payload, treating it like a key which was
already revoked at the time it was requested.

Fixes: 88bd6ccdcd ("ext4 crypto: add encryption key management facilities")
Reviewed-by: James Morris <james.l.morris@oracle.com>
Cc: <stable@vger.kernel.org>    [v4.1+]
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
2017-10-12 17:16:40 +01:00
..
Kconfig fscrypt: add support for AES-128-CBC 2017-06-23 20:05:07 -04:00
Makefile fscrypt: factor out bio specific functions 2017-01-01 16:18:49 -05:00
bio.c block: replace bi_bdev with a gendisk pointer and partitions index 2017-08-23 12:49:55 -06:00
crypto.c fscrypt: add support for AES-128-CBC 2017-06-23 20:05:07 -04:00
fname.c fscrypt: inline fscrypt_free_filename() 2017-06-23 19:59:08 -04:00
fscrypt_private.h fscrypt: add support for AES-128-CBC 2017-06-23 20:05:07 -04:00
keyinfo.c fscrypt: fix dereference of NULL user_key_payload 2017-10-12 17:16:40 +01:00
policy.c The first major feature for ext4 this merge window is the largedir 2017-07-09 09:31:22 -07:00