Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fat: fix bug in enforcing Long File Name length

Since '*outlen' is initialized to zero, it is currently possible to
create a filename of length (FAT_LFN_LEN + 1) when utf8 is not enabled.
To enforce the FAT_LFN_LEN limit, we must perform one less iteration.

Signed-off-by: Namjae Jeon <linkinjeon@gmail.com>
Signed-off-by: Ravishankar N <cyberax82@gmail.com>
Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Namjae Jeon and committed by
Linus Torvalds
d533df07 41f0c02e

+1 -1
+1 -1
fs/fat/namei_vfat.c
··· 522 522 op = &outname[*outlen * sizeof(wchar_t)]; 523 523 } else { 524 524 for (i = 0, ip = name, op = outname, *outlen = 0; 525 - i < len && *outlen <= FAT_LFN_LEN; 525 + i < len && *outlen < FAT_LFN_LEN; 526 526 *outlen += 1) { 527 527 if (escape && (*ip == ':')) { 528 528 if (i > len - 5)