At 10:55 PM 9/11/01 +0100, Glynn Clements wrote:
My main thought is that Windows has so many different aliasing
mechanisms that the main issue is which ones you're going to allow for
and which ones you're going to ignore; you'll never get them all.
True, but cygwin has the same problems - its still windows. If we always
canonicalize the filename at the end to something cygwin gives us then its
not our problem anymore. On the other hand, if you type c:/ maybe you want
to still see that rather than some weird mount point.
If you want a list, search the BugTraq (and similar) archives for
vulnerabilities involving the ability to circumvent filename/URL
access controls by using aliases. Off the top of my head, you have:
Case folding ("foo" == "FOO", usually but not always)
Actually I've not enabled case folding.
8.3 filenames ("C:\Program Files" ==
"C:\PROGRA~1")
So if there is a drive we do whatever the native version does here.
Multiple dots ("..." == "..\..", sometimes)
Again, if there is a drive we do whatever the native version does,
otherwise cygwin.
Device files ("<anything>\LPT1" ==
"<anything else>\LPT1")
Fault-tolerant Unicode (trailing invalid characters are discarded)
Host aliases in UNC paths ("\\localhost\foo\bar" ==
"\\127.0.0.1\foo\bar" == "\\0x7F000001\foo\bar" == ...)
I'm fairly sure that this isn't all of them.
RIght, but I'm fairly sure that the current native version doesn't support
these either.
Some of these aren't relevant outside of a security context (e.g.
device files), but others may be.
I suppose I'm not understanding what your point is. Are you saying
canonicalization is doomed or native filenames in general are doomed or
that the native version of XEmacs is doomed?
andy