* path.cc (normalize_posix_path): Don't check existence of / or // dir

in parent dir check.
This commit is contained in:
Corinna Vinschen 2013-07-31 10:26:51 +00:00
parent 7df2c73d5d
commit fd5f6eb13e
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2013-07-31 Corinna Vinschen <corinna@vinschen.de>
* path.cc (normalize_posix_path): Don't check existence of / or // dir
in parent dir check.
2013-07-26 Christopher Faylor <me.cygwin2013@cgf.cx> 2013-07-26 Christopher Faylor <me.cygwin2013@cgf.cx>
* environ.cc (tty_is_gone): Delete. * environ.cc (tty_is_gone): Delete.

View File

@ -311,11 +311,14 @@ normalize_posix_path (const char *src, char *dst, char *&tail)
double check in case of foo/bar/../.. */ double check in case of foo/bar/../.. */
if (check_parent) if (check_parent)
{ {
*tail = 0; if (tail > dst_start) /* Don't check for / or // dir. */
debug_printf ("checking %s before '..'", dst); {
path_conv head (dst); *tail = 0;
if (!head.isdir()) debug_printf ("checking %s before '..'", dst);
return ENOENT; path_conv head (dst);
if (!head.isdir())
return ENOENT;
}
check_parent = false; check_parent = false;
} }
while (tail > dst_start && !isslash (*--tail)) while (tail > dst_start && !isslash (*--tail))