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
1 changed files with 6 additions and 1 deletions

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