summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r--winsup/cygwin/path.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index 66e174771..64d8759b6 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -2440,6 +2440,18 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt,
{
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