diff options
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 7f0e5b81f..8acb6ff6b 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -311,11 +311,14 @@ normalize_posix_path (const char *src, char *dst, char *&tail) double check in case of foo/bar/../.. */ if (check_parent) { - *tail = 0; - debug_printf ("checking %s before '..'", dst); - path_conv head (dst); - if (!head.isdir()) - return ENOENT; + if (tail > dst_start) /* Don't check for / or // dir. */ + { + *tail = 0; + debug_printf ("checking %s before '..'", dst); + path_conv head (dst); + if (!head.isdir()) + return ENOENT; + } check_parent = false; } while (tail > dst_start && !isslash (*--tail)) |