From: Corinna Vinschen Date: Sat, 25 Oct 2003 16:12:45 +0000 (+0000) Subject: * path.cc (normalize_posix_path): Test runs of more than two X-Git-Tag: corinna-01~43 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=504678827a934187ad05365fedfa5f445891a92b;p=newlib-cygwin.git * path.cc (normalize_posix_path): Test runs of more than two dots for being a run of only dots. Let it pass if not. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7424580aa..3392bfe09 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-10-25 Corinna Vinschen + + * path.cc (normalize_posix_path): Test runs of more than two + dots for being a run of only dots. Let it pass if not. + 2003-10-25 Brian Ford * fhandler.cc (fhandler_base::ioctl): Handle FIONBIO. diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 318986a7e..b759d611c 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -282,7 +282,14 @@ normalize_posix_path (const char *src, char *dst) else if (src[2] && !isslash (src[2])) { if (src[2] == '.') - return ENOENT; + { + /* Is this a run of dots? That would be an invalid + filename. A bunch of leading dots would be ok, + though. */ + int n = strspn (src, "."); + if (!src[n] || isslash (src[n])) /* just dots... */ + return ENOENT; + } break; } else