Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2017-03-14 18:52:20 +0300
committerCorinna Vinschen <corinna@vinschen.de>2017-03-14 18:52:20 +0300
commit73d3f9cf20dbec664f350b8dd0544207472643bc (patch)
treef976d09a9a45f0de1831243331502d7d9afe2221 /winsup
parent125852d77b65fe2155d0d5fa97e53fc9e2b29984 (diff)
Revert "Add release message for commit 973f766f6"
This reverts commit 125852d77b65fe2155d0d5fa97e53fc9e2b29984. Accidentally commited too much.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/path.cc15
-rw-r--r--winsup/cygwin/release/2.8.03
2 files changed, 12 insertions, 6 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index b9763c8d2..16de025b6 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -2302,13 +2302,22 @@ symlink_info::check_reparse_point (HANDLE h, bool remote)
rp->SymbolicLinkReparseBuffer.SubstituteNameLength);
else if (!remote && rp->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT)
{
- /* Don't treat junctions as symlink. The return value of -1 is a hint
- for the caller to treat this as a volume mount point. */
+ /* Don't handle junctions on remote filesystems as symlinks. This type
+ of reparse point is handled transparently by the OS so that the
+ target of the junction is the remote directory it is supposed to
+ point to. If we handle it as symlink, it will be mistreated as
+ pointing to a dir on the local system. */
RtlInitCountedUnicodeString (&subst,
(WCHAR *)((char *)rp->MountPointReparseBuffer.PathBuffer
+ rp->MountPointReparseBuffer.SubstituteNameOffset),
rp->MountPointReparseBuffer.SubstituteNameLength);
- return RtlEqualUnicodePathPrefix (&subst, &ro_u_volume, TRUE) ? -1 : 0;
+ if (RtlEqualUnicodePathPrefix (&subst, &ro_u_volume, TRUE))
+ {
+ /* Volume mount point. Not treated as symlink. The return
+ value of -1 is a hint for the caller to treat this as a
+ volume mount point. */
+ return -1;
+ }
}
else
{
diff --git a/winsup/cygwin/release/2.8.0 b/winsup/cygwin/release/2.8.0
index 2ccbcf10e..9e6c482d4 100644
--- a/winsup/cygwin/release/2.8.0
+++ b/winsup/cygwin/release/2.8.0
@@ -30,6 +30,3 @@ Bug Fixes
- Workaround Windows NUL having the same problem for writes > 4 GB.
Addresses: https://cygwin.com/ml/cygwin/2017-03/msg00144.html
-
-- Fix a potential crash in duplocale.
- Addresses: https://sourceware.org/ml/newlib/2017/msg00166.html