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

Commit fca9d962 authored by Theodore Ts'o's avatar Theodore Ts'o Committed by Eric Biggers
Browse files

UPSTREAM: ext4 crypto: add missing locking for keyring_key access



commit db7730e3091a52c2fcd8fcc952b964d88998e675 upstream.

Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit b80b70ef40459ec9e7493cef5e91e4e11dad9e42)
Change-Id: I004fd40131905f5cebe0e830c5eeedc3a3c97ba7
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
parent da5c9d2f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -213,9 +213,11 @@ retry:
		res = -ENOKEY;
		goto out;
	}
	down_read(&keyring_key->sem);
	ukp = ((struct user_key_payload *)keyring_key->payload.data);
	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 @@ retry:
			    "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: