[Bug 217440] FAT32 formatted USB stick with files written by PS4 - Invalid argument, unable to list directory contents
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Mar 4 20:08:50 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217440
Conrad Meyer <cem at freebsd.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ache at FreeBSD.org
--- Comment #6 from Conrad Meyer <cem at freebsd.org> ---
I think I see why ls(1)/fts(3) shows "Invalid". The directory entries are
readable:
$ echo ./testdir/*
./testdir/123t�st ./testdir/abc?
$ echo $?
0
However, that '?' is an actual question mark symbol, because ™ can not be
represented in iso-8859-1, only win-1252 and unicode. So you cannot access
that file by its directory entry:
$ ls ./testdir/abc?
ls: ./testdir/abc?: Invalid argument
$ truss stat ./testdir/abc?
...
lstat("./testdir/abc?",0x7fffffffe298) ERR#22 'Invalid argument'
I think that EINVAL return is bogus. lstat() misses should return ENOENT. But
that doesn't help you very much.
Maybe VOP_READDIR should prefer 8.3 names if LFN names do not convert into
cs_local. Although, lookup of 8.3 names doesn't work. So maybe not.
It seems cs_local should default to UTF-8 or user's locale, not ISO-8859-1. Or
if it must be a 8-bit character set, Win-1252 may be a better choice.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-fs
mailing list