Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db7730e3 authored by Theodore Ts'o's avatar Theodore Ts'o
Browse files

ext4 crypto: add missing locking for keyring_key access



Cc: stable@kernel.org
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent ba5843f5
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -213,9 +213,11 @@ int _ext4_get_encryption_info(struct inode *inode)
		res = -ENOKEY;
		goto out;
	}
	down_read(&keyring_key->sem);
	ukp = user_key_payload(keyring_key);
	if (ukp->datalen != sizeof(struct ext4_encryption_key)) {
		res = -EINVAL;
		up_read(&keyring_key->sem);
		goto out;
	}
	master_key = (struct ext4_encryption_key *)ukp->data;
@@ -226,10 +228,12 @@ int _ext4_get_encryption_info(struct inode *inode)
			    "ext4: key size incorrect: %d\n",
			    master_key->size);
		res = -ENOKEY;
		up_read(&keyring_key->sem);
		goto out;
	}
	res = ext4_derive_key_aes(ctx.nonce, master_key->raw,
				  raw_key);
	up_read(&keyring_key->sem);
	if (res)
		goto out;
got_key: