diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2003-10-25 16:12:45 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2003-10-25 16:12:45 +0000 |
commit | 504678827a934187ad05365fedfa5f445891a92b (patch) | |
tree | f1cee136c86ca630f75c97a933af09e6e1ddfb06 /winsup/cygwin/path.cc | |
parent | 89256ff149e706733fb0e6076b137f0005d0e41c (diff) | |
download | cygnal-504678827a934187ad05365fedfa5f445891a92b.tar.gz cygnal-504678827a934187ad05365fedfa5f445891a92b.tar.bz2 cygnal-504678827a934187ad05365fedfa5f445891a92b.zip |
* path.cc (normalize_posix_path): Test runs of more than two
dots for being a run of only dots. Let it pass if not.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 9 |
1 files changed, 8 insertions, 1 deletions
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 |