From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-it0-f68.google.com ([209.85.214.68]:52077 "EHLO mail-it0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751670AbdJXTbM (ORCPT ); Tue, 24 Oct 2017 15:31:12 -0400 Received: by mail-it0-f68.google.com with SMTP id o135so11412577itb.0 for ; Tue, 24 Oct 2017 12:31:11 -0700 (PDT) From: Eric Biggers To: stable@vger.kernel.org Cc: Theodore Ts'o , Jaegeuk Kim , David Howells , Eric Biggers Subject: [PATCH 2/3] f2fs crypto: add missing locking for keyring_key access Date: Tue, 24 Oct 2017 12:30:02 -0700 Message-Id: <20171024193003.58499-2-ebiggers3@gmail.com> In-Reply-To: <20171024193003.58499-1-ebiggers3@gmail.com> References: <20171024193003.58499-1-ebiggers3@gmail.com> Sender: stable-owner@vger.kernel.org List-ID: From: Jaegeuk Kim commit 745e8490b1e960ad79859dd8ba6a0b5a8d3d994e upstream. Please apply to 4.4-stable. This patch adopts: ext4 crypto: add missing locking for keyring_key access Signed-off-by: Theodore Ts'o Signed-off-by: Jaegeuk Kim Signed-off-by: Eric Biggers --- fs/f2fs/crypto_key.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/f2fs/crypto_key.c b/fs/f2fs/crypto_key.c index 81c87f7a3251..ae49be377b60 100644 --- a/fs/f2fs/crypto_key.c +++ b/fs/f2fs/crypto_key.c @@ -193,9 +193,11 @@ int f2fs_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 f2fs_encryption_key)) { res = -EINVAL; + up_read(&keyring_key->sem); goto out; } master_key = (struct f2fs_encryption_key *)ukp->data; @@ -206,10 +208,12 @@ int f2fs_get_encryption_info(struct inode *inode) "f2fs: key size incorrect: %d\n", master_key->size); res = -ENOKEY; + up_read(&keyring_key->sem); goto out; } res = f2fs_derive_key_aes(ctx.nonce, master_key->raw, raw_key); + up_read(&keyring_key->sem); if (res) goto out; -- 2.15.0.rc0.271.g36b669edcc-goog