summaryrefslogtreecommitdiffstats
path: root/sys/fs/msdosfs/msdosfs_conv.c
diff options
context:
space:
mode:
authorfjoe <fjoe@FreeBSD.org>2003-12-08 08:32:20 +0000
committerfjoe <fjoe@FreeBSD.org>2003-12-08 08:32:20 +0000
commitab0bce9d34117f8a7b96ec8a3c86ed0e86d58ef8 (patch)
tree6ebbe6155fc751cdfa161e601e91e193cd383576 /sys/fs/msdosfs/msdosfs_conv.c
parent8a088743dbd2835567a01e9f13b69c3dc4b0d8a9 (diff)
downloadFreeBSD-src-ab0bce9d34117f8a7b96ec8a3c86ed0e86d58ef8.zip
FreeBSD-src-ab0bce9d34117f8a7b96ec8a3c86ed0e86d58ef8.tar.gz
Make msdosfs long filenames matching case insensitive again.
PR: 59765 Submitted by: Ryuichiro Imura <imura@ryu16.org>
Diffstat (limited to 'sys/fs/msdosfs/msdosfs_conv.c')
-rw-r--r--sys/fs/msdosfs/msdosfs_conv.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/fs/msdosfs/msdosfs_conv.c b/sys/fs/msdosfs/msdosfs_conv.c
index 5c663c8..728c983 100644
--- a/sys/fs/msdosfs/msdosfs_conv.c
+++ b/sys/fs/msdosfs/msdosfs_conv.c
@@ -800,10 +800,12 @@ winChkName(un, unlen, chksum, pmp)
for (np = dirbuf.d_name; unlen > 0 && len > 0;) {
/*
- * Should comparison be case insensitive?
+ * Comparison must be case insensitive, because FAT disallows
+ * to look up or create files in case sensitive even when
+ * it's a long file name.
*/
- c1 = unix2winchr((const u_char **)&np, (size_t *)&len, 0, pmp);
- c2 = unix2winchr(&un, (size_t *)&unlen, 0, pmp);
+ c1 = unix2winchr((const u_char **)&np, (size_t *)&len, LCASE_BASE, pmp);
+ c2 = unix2winchr(&un, (size_t *)&unlen, LCASE_BASE, pmp);
if (c1 != c2)
return -2;
}
OpenPOWER on IntegriCloud