[newlib-cygwin] Cygwin: Handle virtual drives as non-symlinks
Corinna Vinschen
corinna@sourceware.org
Wed May 19 12:41:18 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c8949d04001e3dbc03651475b6cd1c5623400835
commit c8949d04001e3dbc03651475b6cd1c5623400835
Author: Jeremy Drake <cygwin@jdrake.com>
Date: Wed May 19 14:40:23 2021 +0200
Cygwin: Handle virtual drives as non-symlinks
This avoids MAX_PATH-related problems in native tools in case the
virtual drive points to a deep directory
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/path.cc | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index dd7048486..637c32348 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -3495,14 +3495,9 @@ restart:
subst X: C:\foo\bar
- Treat it like a symlink. This is required to tell an
- lstat caller that the "drive" is actually pointing
- somewhere else, thus, it's a symlink in POSIX speak. */
+ Treat it as a normal file. */
if (upath.Length == 14) /* \??\X:\ */
- {
- fileattr &= ~FILE_ATTRIBUTE_DIRECTORY;
- path_flags |= PATH_SYMLINK;
- }
+ goto file_not_symlink;
/* For final paths differing in inner path components return
length as negative value. This informs path_conv::check
to skip realpath handling on the last path component. */
More information about the Cygwin-cvs
mailing list