diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 72bbbda79..9c44cb221 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2001-11-24 Christopher Faylor + + * path.cc (path_conv::check): Tighten FH_CYGDRIVE check to avoid + matching trailing component, like other devices. + 2001-11-24 Christopher Faylor * autoload.cc (IsDebuggerPresent): Make conditional load since it is diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 8e1775c3c..af30927c0 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -482,19 +482,16 @@ path_conv::check (const char *src, unsigned opt, /* devn should not be a device. If it is, then stop parsing now. */ if (devn != FH_BAD) { - if (devn == FH_CYGDRIVE) + if (component) + { + error = ENOTDIR; + return; + } + if (devn != FH_CYGDRIVE) + fileattr = 0; + else fileattr = !unit ? FILE_ATTRIBUTE_DIRECTORY : GetFileAttributes (full_path); - else - { - if (component) - { - error = ENOTDIR; - return; - } - fileattr = 0; - } - goto out; /* Found a device. Stop parsing. */ }