This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Revert "Add release message for commit 973f766f6"


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=73d3f9cf20dbec664f350b8dd0544207472643bc

commit 73d3f9cf20dbec664f350b8dd0544207472643bc
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Tue Mar 14 16:52:20 2017 +0100

    Revert "Add release message for commit 973f766f6"
    
    This reverts commit 125852d77b65fe2155d0d5fa97e53fc9e2b29984.
    
    Accidentally commited too much.

Diff:
---
 winsup/cygwin/path.cc       | 15 ++++++++++++---
 winsup/cygwin/release/2.8.0 |  3 ---
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index b9763c8..16de025 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 2ccbcf1..9e6c482 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]