when accessing files matching DOS device names on SMB shares.
2008-07-31 Corinna Vinschen <corinna@vinschen.de>
+ * path.cc (symlink_info::check): Handle (and explain) a special case
+ when accessing files matching DOS device names on SMB shares.
+
+2008-07-31 Corinna Vinschen <corinna@vinschen.de>
+
* spawn.cc (spawn_guts): Check constructed short pathname for being
a DOS device name and fall back to long path name, if so.
{
debug_printf ("%p = NtQueryDirectoryFile(%S)",
status, &dirname);
+ if (status == STATUS_NO_SUCH_FILE)
+ {
+ /* This can happen when trying to access files
+ which match DOS device names on SMB shares.
+ NtOpenFile failed with STATUS_ACCESS_DENIED,
+ but the NtQueryDirectoryFile tells us the
+ file doesn't exist. We're suspicious in this
+ case and retry with the next suffix instead of
+ just giving up. */
+ set_error (ENOENT);
+ continue;
+ }
fileattr = 0;
}
else