From fe9e3b4498ab7b3260f5e326cad77e21d5c2293c Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 14 Jul 2016 20:52:04 +0200 Subject: [PATCH] Transform all special chars in relative Windows path string get_nt_native_path handles the transposition of chars not allowed in Windows pathnames. However, it never starts transposition at the start of the string, which is wrong for relative paths. Fix it. Signed-off-by: Corinna Vinschen --- winsup/cygwin/path.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 7373fb72d..970a0fec4 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -447,10 +447,13 @@ get_nt_native_path (const char *path, UNICODE_STRING& upath, bool dos) str2uni_cat (upath, path); /* The drive letter must be upper case. */ upath.Buffer[4] = towupper (upath.Buffer[4]); + transform_chars (&upath, 7); + } + else /* relative path */ + { + str2uni_cat (upath, path); + transform_chars (&upath, 0); } - else - str2uni_cat (upath, path); - transform_chars (&upath, 7); } else if (path[1] != '\\') /* \Device\... */ str2uni_cat (upath, path);