diff options
Diffstat (limited to 'fs/crypto/keyinfo.c')
| -rw-r--r-- | fs/crypto/keyinfo.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/fs/crypto/keyinfo.c b/fs/crypto/keyinfo.c index 018c588c7ac3..a38630214058 100644 --- a/fs/crypto/keyinfo.c +++ b/fs/crypto/keyinfo.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  /*   * key management facility for FS encryption support.   * @@ -109,6 +110,11 @@ static int validate_user_key(struct fscrypt_info *crypt_info,  		goto out;  	}  	ukp = user_key_payload_locked(keyring_key); +	if (!ukp) { +		/* key was revoked before we acquired its semaphore */ +		res = -EKEYREVOKED; +		goto out; +	}  	if (ukp->datalen != sizeof(struct fscrypt_key)) {  		res = -EINVAL;  		goto out; |