All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Gabriel Krisman Bertazi <krisman@suse.de>,
	Eric Biggers <ebiggers@google.com>,
	Sasha Levin <sashal@kernel.org>,
	code@tyhicks.com, brauner@kernel.org, dchinner@redhat.com,
	jack@suse.cz, jlayton@kernel.org, walmeida@microsoft.com,
	stefanb@linux.ibm.com, viro@zeniv.linux.org.uk,
	ecryptfs@vger.kernel.org
Subject: [PATCH AUTOSEL 6.1 10/14] ecryptfs: Reject casefold directory inodes
Date: Mon, 15 Jan 2024 20:06:12 -0500	[thread overview]
Message-ID: <20240116010642.218876-10-sashal@kernel.org> (raw)
In-Reply-To: <20240116010642.218876-1-sashal@kernel.org>

From: Gabriel Krisman Bertazi <krisman@suse.de>

[ Upstream commit cd72c7ef5fed44272272a105b1da22810c91be69 ]

Even though it seems to be able to resolve some names of
case-insensitive directories, the lack of d_hash and d_compare means we
end up with a broken state in the d_cache.  Considering it was never a
goal to support these two together, and we are preparing to use
d_revalidate in case-insensitive filesystems, which would make the
combination even more broken, reject any attempt to get a casefolded
inode from ecryptfs.

Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/ecryptfs/inode.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index c214fe0981bd..55340ac61456 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -76,6 +76,14 @@ static struct inode *__ecryptfs_get_inode(struct inode *lower_inode,
 
 	if (lower_inode->i_sb != ecryptfs_superblock_to_lower(sb))
 		return ERR_PTR(-EXDEV);
+
+	/* Reject dealing with casefold directories. */
+	if (IS_CASEFOLDED(lower_inode)) {
+		pr_err_ratelimited("%s: Can't handle casefolded directory.\n",
+				   __func__);
+		return ERR_PTR(-EREMOTE);
+	}
+
 	if (!igrab(lower_inode))
 		return ERR_PTR(-ESTALE);
 	inode = iget5_locked(sb, (unsigned long)lower_inode,
-- 
2.43.0


  parent reply	other threads:[~2024-01-16  1:07 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-16  1:06 [PATCH AUTOSEL 6.1 01/14] arch: consolidate arch_irq_work_raise prototypes Sasha Levin
2024-01-16  1:06 ` Sasha Levin
2024-01-16  1:06 ` Sasha Levin
2024-01-16  1:06 ` Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 02/14] s390/vfio-ap: fix sysfs status attribute for AP queue devices Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 03/14] Hexagon: Make pfn accessors statics inlines Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 04/14] s390/ptrace: handle setting of fpc register correctly Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 05/14] KVM: s390: fix setting of fpc register Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 06/14] arm64: Fix circular header dependency Sasha Levin
2024-01-16  1:06   ` Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 07/14] SUNRPC: Fix a suspicious RCU usage warning Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 08/14] ext4: enable dioread_nolock as default for bs < ps case Sasha Levin
2024-01-16 20:47   ` Pavel Machek
2024-01-24  5:56     ` Ojaswin Mujoo
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 09/14] smb: client: Fix minor whitespace errors and warnings Sasha Levin
2024-01-16 20:48   ` Pavel Machek
2024-01-16  1:06 ` Sasha Levin [this message]
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 11/14] ext4: fix inconsistent between segment fstrim and full fstrim Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 12/14] ext4: unify the type of flexbg_size to unsigned int Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 13/14] ext4: remove unnecessary check from alloc_flex_gd() Sasha Levin
2024-01-16  1:06 ` [PATCH AUTOSEL 6.1 14/14] ext4: avoid online resizing failures due to oversized flex bg Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240116010642.218876-10-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=brauner@kernel.org \
    --cc=code@tyhicks.com \
    --cc=dchinner@redhat.com \
    --cc=ebiggers@google.com \
    --cc=ecryptfs@vger.kernel.org \
    --cc=jack@suse.cz \
    --cc=jlayton@kernel.org \
    --cc=krisman@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stefanb@linux.ibm.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=walmeida@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.