vfat bugfixes

From: 7eggert@gmx.de
Date: Wed Aug 02 2000 - 23:58:16 EST


after i found a simple bug in the vfat driver, i decided to fix it.
i did not know that it would be more than a few lines to change.
since this is a major change (and i dont have the original kernel
installed anymore), i will put the tar.gz with the changes on my homepage
(http://members.tripod.de/x7eggert/vfat-changes.tar.gz).

I cannot find someone who could test it,
but it runs well on my system.

while i did these changes, i used kernel 2.2.15.
since in kernel 2.2.16 the nls-interface has changed,
i will have to rewrite some parts to use the changed interface.

BTW: should the nls-interface be changed to return the number of
     converted bytes? this might save one temporary variable.

-----------------------------------------------------------------------

Bug description:

if one character is not in the current codepage (nls_io), it will be
 mapped to unicode 0.
while reading filenames, this will terminate the filename at that point.
since this happens while reading, you can get duplicate filenames.
this happened to me while copying files from smbfs (which does not map
 codepages) containing ö (ö) in their name.

other bugs i found (and fixed) while fixing this one:

- nls was unused.
- dotsOK caused some trouble if more than one hidden file was in the
  direcory
- nls_io was unset for msdosfs (did not harm, since it was unused...
  until i activated its use)
- some buffer overflows only occuring with correct name handling

changes:

- dotsOK enabled by default
- short name matching removed
- nonumtail mount-option ignored
- same case in linux and W98 for short names (if uppercase names are
  enabled)
- posix option will not work corectly

/-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\
|*-=>www.7eggert.de<=-*-=>7eggert@gmx.de<=-*|
\-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-/

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



This archive was generated by hypermail 2b29 : Mon Aug 07 2000 - 21:00:10 EST