Date: Sat, 04 Mar 2017 20:08:50 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-fs@FreeBSD.org Subject: [Bug 217440] FAT32 formatted USB stick with files written by PS4 - Invalid argument, unable to list directory contents Message-ID: <bug-217440-3630-fkKD9jJ0Mo@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-217440-3630@https.bugs.freebsd.org/bugzilla/> References: <bug-217440-3630@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D217440 Conrad Meyer <cem@freebsd.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ache@FreeBSD.org --- Comment #6 from Conrad Meyer <cem@freebsd.org> --- I think I see why ls(1)/fts(3) shows "Invalid". The directory entries are readable: $ echo ./testdir/* ./testdir/123t=EF=BF=BDst ./testdir/abc? $ echo $? 0 However, that '?' is an actual question mark symbol, because =E2=84=A2 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. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-217440-3630-fkKD9jJ0Mo>