* path.cc (symlink_info::check): Handle (and explain) a special case
when accessing files matching DOS device names on SMB shares.
This commit is contained in:
parent
9fe98985b3
commit
3462d736b6
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue