From f0ae353a4fe00d3a33fdebaedc28ebac685463ad Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 28 Nov 2016 12:33:40 +0100 Subject: [PATCH] path_conv: When encountering a ".(/)+" sequence, skip *all* slashes The original code only skipped the "./", but missed to test if more trailing slashes are present. This in turn leads to invalid conversion. Signed-off-by: Corinna Vinschen --- winsup/cygwin/path.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index aaf192820..3d07ea176 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1406,7 +1406,12 @@ normalize_win32_path (const char *src, char *dst, char *&tail) /* Ignore "./". */ else if (src[0] == '.' && isdirsep (src[1]) && (src == src_start || isdirsep (src[-1]))) - src += 2; + { + src += 2; + /* Skip /'s to the next path component. */ + while (isdirsep (*src)) + src++; + } /* Backup if "..". */ else if (src[0] == '.' && src[1] == '.'