kern/77074: RELENG_4 -> 5 regression regards msdosfs and KOI8-U

Dmitry Pryanishnikov dmitry at atlantis.dp.ua
Thu Feb 3 12:50:25 PST 2005


>Number:         77074
>Category:       kern
>Synopsis:       RELENG_4 -> 5 regression regards msdosfs and KOI8-U
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Feb 03 20:50:23 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Pryanishnikov
>Release:        5.3-RELEASE-p2
>Organization:
Atlantis ISP
>Environment:
FreeBSD homelynx.homenet 5.3-RELEASE-p2 FreeBSD 5.3-RELEASE-p2 #0: Wed Dec 22 01:35:24 EET 2004     root at homelynx.homenet:/usr/obj/usr/src/sys/lynx  i386

>Description:
      5.3-RELEASE can't handle some characters of the KOI8-U charset
in filenames on FAT-32 file system, namely (from RFC2319):

   <decimal>  <hex-code>  <UCS>     <description>
   166       A6      U0456      CYRILLIC SMALL LETTER BYELORUSSIAN-
                                 UKRAINIAN I
   173       AD      U0491      CYRILLIC SMALL LETTER GHE WITH UPTURN
   182       B6      U0406      CYRILLIC CAPITAL LETTER
                                 BYELORUSSIAN-UKRAINIAN I
   189       BD      U0490      CYRILLIC CAPITAL LETTER GHE WITH UPTURN

One can create files with those characters in filename under MS Windows
or FreeBSD 4.11-RELEASE (filesystem mounted there with additional parameters in fstab: -L=uk_UA.KOI8-U,-W=koi8u2dos), and both systems
can access resulting files, Windows doesn't detect violations of disk
structure. But when I mount this slice under 5.3-RELEASE (I'm using additional parameters -L=uk_UA.KOI8-U,-D=CP866 as -W deprecated in RELENG_5 and mount_msdosfs internally replaces it whit -D=CP866 anyways), ls -l and other utilities say "ls: X: Invalid argument" where
X is a file name with a "forbidden" letter.
>How-To-Repeat:
      Under 4.11-RELEASE: mount FAT-32 partition with uk_UA.KOI8-U locale
(-L=uk_UA.KOI8-U,-W=koi8u2dos) and create file with the name, say, Ukrainian I (character code differs from English I). Then reboot to 5.3-RELEASE, mount the same partition with uk_UA.KOI8-U locale (now use
-L=uk_UA.KOI8-U,-D=CP866) and try to ls -l or fstat this file.
>Fix:
      
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list