Re: [PATCH v2] ext4: avoid utf8_strncasecmp() with unstable name

Theodore Y. Ts'o
2020-06-11T15:02:11Z

On Mon, Jun 01, 2020 at 02:49:51PM -0600, Andreas Dilger wrote:
> On Jun 1, 2020, at 2:05 PM, Eric Biggers <ebiggers@kernel.org> wrote:
> >
> > From: Eric Biggers <ebiggers@google.com>
> >
> > If the dentry name passed to ->d_compare() fits in dentry::d_iname, then
> > it may be concurrently modified by a rename. This can cause undefined
> > behavior (possibly out-of-bounds memory accesses or crashes) in
> > utf8_strncasecmp(), since fs/unicode/ isn't written to handle strings
> > that may be concurrently modified.
> >
> > Fix this by first copying the filename to a stack buffer if needed.
> > This way we get a stable snapshot of the filename.
> >
> > Fixes: b886ee3e778e ("ext4: Support case-insensitive file name lookups")
> > Cc: <stable@vger.kernel.org> # v5.2+
> > Cc: Al Viro <viro@zeniv.linux.org.uk>
> > Cc: Daniel Rosenberg <drosen@google.com>
> > Cc: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
> > Signed-off-by: Eric Biggers <ebiggers@google.com>
>
> LGTM.
>
> Reviewed-by: Andreas Dilger <adilger@dilger.ca>

Thanks, applied.

- Ted