From mboxrd@z Thu Jan 1 00:00:00 1970 From: Theodore Ts'o Subject: [PATCH v3 3/3] ext4 crypto: add missing locking for keyring_key access Date: Thu, 10 Dec 2015 10:04:39 -0500 Message-ID: <1449759879-2166-4-git-send-email-tytso@mit.edu> References: <1449759879-2166-1-git-send-email-tytso@mit.edu> Cc: mhalcrow@google.com, Theodore Ts'o , stable@kernel.org To: Ext4 Developers List Return-path: Received: from imap.thunk.org ([74.207.234.97]:50537 "EHLO imap.thunk.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753886AbbLJPEp (ORCPT ); Thu, 10 Dec 2015 10:04:45 -0500 In-Reply-To: <1449759879-2166-1-git-send-email-tytso@mit.edu> Sender: linux-ext4-owner@vger.kernel.org List-ID: Cc: stable@kernel.org Signed-off-by: Theodore Ts'o --- fs/ext4/crypto_key.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/ext4/crypto_key.c b/fs/ext4/crypto_key.c index 039b22d..f96a57a 100644 --- a/fs/ext4/crypto_key.c +++ b/fs/ext4/crypto_key.c @@ -213,9 +213,11 @@ retry: 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 @@ 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: -- 2.5.0