Re: [PATCH] fat: Refactor shortname parsing

From: Steven J. Magnani
Date: Mon Jul 02 2012 - 10:00:35 EST


On Mon, 2012-07-02 at 22:40 +0900, OGAWA Hirofumi wrote:
> "Steven J. Magnani" <steve@xxxxxxxxxxxxxxx> writes:
>
> > On Sat, 2012-06-30 at 05:09 +0900, OGAWA Hirofumi wrote:
> >> OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> writes:
> >>
> >> >
> >> > if (is_vfat)
> >> > ptname[i++] = fat_tolower(!nocase, c);
> >>
> >> Of course, if (!is_vfat). Sorry.
> >
> > I agree that the nocase logic is confusing, but I'm pretty sure this
> > change would break the code.
>
> I might be wrong here though, which place is broken with it?
>
> > 'nocase' is always zero for vfat, which does not recognize that option.
> > For msdos, it is zero by default, and 1 if the 'nocase' option was
> > specified.
> > In all cases it is necessary to copy *something* to ptname.
>
> Looks like, we overwrite bufname by converted bufuname in is_vfat case?
>
> if (isvfat) {
> bufuname[j] = 0x0000;
> i = fat_uni_to_x8(sb, bufuname, bufname, sizeof(bufname));
> }

True, but with the change you suggest we lose the incrementing of 'i',
which likely would cause an infinite loop for 1:1 Unicode conversions.

Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/