On 04/19/2014 08:40 PM, Ray Donnelly wrote: > Windows does a short-circuit lookup of paths containing > ../ which means that: > > exists/doesnotexist/../file > > is considered to exist, while on Posix it is considered > not to. The Posix semantics are relied upon when building > glibc so any paths containing "../" are checked component > wise.
This looks like to me the sort of thing that potentially can break Windows build systems that might rely on the Windows semantics. If one's running a native Windows program (such as a native Windows GCC build), I'd expect that native Windows semantics are followed (lest we end up reinventing Cygwin within GCC). At least by default. IMHO. On 04/19/2014 08:40 PM, Ray Donnelly wrote: ... > + Only do these slow checks if "../" appears in file->path. > + Cygwin also suffers from the same problem (but doesn't need > + a new stat function): > + http://cygwin.com/ml/cygwin/2013-05/msg00222.html That looks like a bug in Cygwin itself, and thus not appropriate to fix or reference here. > + */ > + if (file->fd > 0) > + { -- Pedro Alves