4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-18 04:19:21 +08:00

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 <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2016-11-28 12:33:40 +01:00
parent a43e81e233
commit f0ae353a4f

View File

@ -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] == '.'