Date: Fri, 12 Dec 2003 12:43:11 +0300 From: Alexander Zagrebin <alexz@visp.ru> To: freebsd-current@freebsd.org Cc: fjoe@freebsd.org Subject: RELENG_5_2 ntfs mounting problem Message-ID: <200312121243.11908.alexz@visp.ru>
next in thread | raw e-mail | index | archive | help
Hi! The FreeBSD 5.2-RC has problem with russian (cyrillic) file names on NTFS volumes. If the file name is "ΤΕΣΤ" (hex: 0xd4 0xc5 0xd3 0xd4), then after mounting its name looks like 0xff 0xd4 0xff 0xc5 0xff 0xd3 0xff 0xd4, so file is inaccessible. I reason is in function "wchar ntfs_u28" (file ntfs_subr.c). This function returns value of outbuf (char), converted to wchar. The highest bit of russian characters (koi8-r encoding) is always 1, so this conversion works incorrectly (data type char is signed). This patch solves the problem. ===================================================== --- ntfs_subr.c.orig Fri Dec 12 12:00:31 2003 +++ ntfs_subr.c Fri Dec 12 11:47:32 2003 @@ -2143,7 +2143,8 @@ struct ntfsmount *ntmp, wchar wc) { - char *p, *outp, inbuf[3], outbuf[3]; + char *p, *outp, inbuf[3]; + unsigned char outbuf[3]; size_t ilen, olen; if (ntfs_iconv && ntmp->ntm_ic_u2l) { ===================================================== Alexander Zagrebin --
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200312121243.11908.alexz>