* path.cc (normalize_posix_path): Preserve //./ and //?/ prefixes.
(path_conv::check): Allow access to root directory of native NT disk devices.
This commit is contained in:
parent
8fd414ffc6
commit
274116ea12
@ -1,3 +1,9 @@
|
|||||||
|
2010-08-31 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* path.cc (normalize_posix_path): Preserve //./ and //?/ prefixes.
|
||||||
|
(path_conv::check): Allow access to root directory of native NT disk
|
||||||
|
devices.
|
||||||
|
|
||||||
2010-08-31 Corinna Vinschen <corinna@vinschen.de>
|
2010-08-31 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* include/cygwin/version.h: Bump DLL minor version number to 7.
|
* include/cygwin/version.h: Bump DLL minor version number to 7.
|
||||||
|
@ -267,6 +267,14 @@ normalize_posix_path (const char *src, char *dst, char *&tail)
|
|||||||
{
|
{
|
||||||
*tail++ = *src++;
|
*tail++ = *src++;
|
||||||
++dst_start;
|
++dst_start;
|
||||||
|
/* Is that a //?/ or //./ prefix into the native NT namespace?
|
||||||
|
If so, preserve it. */
|
||||||
|
if ((src[1] == '.' || src[1] == '?') && isslash (src[2]))
|
||||||
|
{
|
||||||
|
*tail++ = *src++;
|
||||||
|
*tail++ = *src++;
|
||||||
|
dst_start += 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (*src)
|
while (*src)
|
||||||
@ -818,6 +826,13 @@ path_conv::check (const char *src, unsigned opt,
|
|||||||
full_path[2] = '\\';
|
full_path[2] = '\\';
|
||||||
full_path[3] = '\0';
|
full_path[3] = '\0';
|
||||||
}
|
}
|
||||||
|
/* Otherwise, if the user requires a directory and explicitely
|
||||||
|
specified a path into the native NT namespace, add the trailing
|
||||||
|
backslash. It's needed to access the root dir. */
|
||||||
|
else if (need_directory
|
||||||
|
&& full_path[0] == '\\' && full_path[1] == '\\'
|
||||||
|
&& (full_path[2] == '.' || full_path[2] == '?'))
|
||||||
|
strcat (full_path, "\\");
|
||||||
|
|
||||||
/* If the incoming path was given in DOS notation, always treat
|
/* If the incoming path was given in DOS notation, always treat
|
||||||
it as caseinsensitive,noacl path. This must be set before
|
it as caseinsensitive,noacl path. This must be set before
|
||||||
|
Loading…
x
Reference in New Issue
Block a user