delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2021/12/07/11:04:59

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9E69C3858003
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1638893097;
bh=H+Mfy/9dWUlVvwSsmfniO1/SAH4FjVzJFbAfIUByIMU=;
h=Date:From:To:Subject:References:In-Reply-To:List-Id:
List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
Reply-To:From;
b=mD1pcnudHIR+BYjv0lri/4Obapt74fx4JH3sJ8foW1Lw23KcT09fbeji450qEdaIW
E8oTYSswkjpEqYFAF+2B1nmFKOjN94OCyDuNlirFOA6bSwWHGEqSK/bFWTkj9DSBUf
O4xb0CsrKMU2XBLpyXsL0h9z08kXVAOJMHqSwjK8=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 04E683858C60
Authentication-Results: sourceware.org;
dmarc=fail (p=none dis=none) header.from=cygwin.com
Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=cygwin.com
Date: Tue, 7 Dec 2021 17:03:44 +0100
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: vboxsharedfs - Too many levels of symbolic links
Message-ID: <Ya+F4JnYkOaAZXPP@calimero.vinschen.de>
Mail-Followup-To: cygwin AT cygwin DOT com
References: <d6470ffe-8e49-3eb7-4d21-3212e0ad4f31 AT oskog97 DOT com>
<20211205115411 DOT 1619911cb3e2d23f671912ce AT nifty DOT ne DOT jp>
<Ya3i/sfWB2avaJ9F AT calimero DOT vinschen DOT de>
<20211206195527 DOT 9b9c09b549fa8fcc2512949e AT nifty DOT ne DOT jp>
<20211207094612 DOT 313345b38eac94bae85448b4 AT nifty DOT ne DOT jp>
<Ya92dHe+1fq5CvXA AT calimero DOT vinschen DOT de>
<20211208003249 DOT 0901c94003421c1d1c06169c AT nifty DOT ne DOT jp>
MIME-Version: 1.0
In-Reply-To: <20211208003249.0901c94003421c1d1c06169c@nifty.ne.jp>
X-Provags-ID: V03:K1:EkWWdg+00EXN8O8Mb1t75XZHUbn14p05QmLNZLSn0ME7Jtn5IJx
D1CDFCO/QIdHHXzGKMpQe5CycmeIjIPYYeGBH2HnvaKXJU2dvLygvc6c0jxWRqy7gmpiGbo
oLD+ghybPtTOG61/9R5JpNL/bzhO5/4vmy5mYspjMEX5v1nhC31DWL3KJ6LfYD8jt7t0HeE
JBnT9qNU6+Gd0sWO9Hi1Q==
X-UI-Out-Filterresults: notjunk:1;V03:K0:Dkqh8fQpuT4=:2sT42CyIXieAz2I+pJa2uN
Vcz+rG17DZYypdiSZi8Z1pLDCXurWbkuU+EICXZyJrbKidzTvyqUFI1eT1N76tdtC2xuX0hp2
sN7npFxjWTzimfm88o+xuHj7kh5CL+V0zbmFUIMhYq8NuSmkjFHsegbY3mFxunyhs9dugEjI1
aM4tmQi8wV1hdccqHroFt96qXYnPtZCsfnsiKFg+HP6xhfTb6LJO3SL+yTpfP7j318IAr7lLw
Xmbj6EHyeuaHwTrROaCMFmW9+vA2mxNGw49fXq7IgbodOfLp9LkYx2Y1LnH6PYQb6I7NIt/Gb
Qoy5RniY1pmb73Yx8wl7v3lO3iUA5NoYyJBLiZeAX/0wXMcSHSpsYb9NaC48sWphcijhM2Uzk
/BmpGLIemvTPf7GdKJzYmt2YBbGrhOTH/7M1mHkG4oD3RSm3/RATLSlvNHLuzTB0FKLynESVE
9vwlc4bNypocBYBSHdwd7ZOnaXQZ6y8g6XhiLELy6r145LM+Z7eG9tnmV01bjZe08N5LQa+79
F1XRcTLxP5eLpgXq2nixU5F0thtxRJYndWSypYiRJTNidjzU4w53uMMiIZOAHyxnMOUdwfQot
Rnycz4TfvhKqbmUdn1M6v06SLmlkBVj+OZDowrGQMlu+DNWcPYRgiT+xth5douixiH1sDFtwo
L+95H448TU6Sj7Qno8/tAcU4P2IMDUXjbx+ocxXXx0WSthV00R0Azok3DXSL+Ri61hF5imgoC
hnywA5qR+/fjMLMc
X-Spam-Status: No, score=-99.4 required=5.0 tests=BAYES_00,
GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE,
RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NEUTRAL,
TXREP autolearn=ham autolearn_force=no version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Reply-To: cygwin AT cygwin DOT com
Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

On Dec  8 00:32, Takashi Yano wrote:
> On Tue, 7 Dec 2021 15:57:56 +0100
> Corinna Vinschen wrote:
> > On Dec  7 09:46, Takashi Yano wrote:
> > > I think '/cygdrive/z/..' should be '/cygdrive', however,
> > > in current cygwin, it is interpreted into '//VBoxSrv'.
> > > 
> > > Is this as you intended?
> > > 
> > > With my patch which stops to treat UNC path as symlink,
> > > '/cygdrive/z/..' returns '/cygdrive'.
> > 
> > Yeah, but...
> > 
> > ...what bugs me is that *every* UNC path is treated this way with
> > that patch.  If you have a path like /cygdrive/x/a/b/c, with x:
> > being a virtual drive pointing to //server/share, and with "b"
> > being a symlink to "syml", what you get back is either
> > 
> >   //server/share/a/syml/c
> > 
> > without, or
> > 
> >   /cygdrive/x/a/b/c
> > 
> > with your patch.  What we would like to get back is
> > 
> >   /cygdrive/x/a/syml/c
> 
> With my patch, above case behaves like:
> 
> $ mount
> C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
> C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
> C:/cygwin on / type ntfs (binary,auto)
> C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
> D: on /cygdrive/d type iso9660 (binary,posix=0,user,noumount,auto)
> Z: on /cygdrive/z type vboxsharedfolderfs (binary,posix=0,user,noumount,auto)
> $ cd /cygdrive/z
> $ mkdir -p aa/syml/cc
> $ ln -s syml aa/bb
> $ cd aa/bb/cc
> $ /bin/pwd
> /cygdrive/z/aa/syml/cc
> $
> 
> Isn't this what you would like?

Sorry, I wasn't expressing myself clearly.  The end result is what is
expected, yes.  But that's the result of the full path_conv conversion,
which wasn't what I was up to.

The idea of the GFPNBH call is to short-circuit the path_conv handling
in case we have native Windows symlinks in the path.  My example above
was only considering what comes out of the `if ((pc_flags & ...) { ... }
' expression starting in line 3485 (assuming "b" is a native symlink).

What I mean is this: Your patch disregards the entire string returned by
GFPNBH, if the returned path is an UNC path, no matter what.

But what if the incoming path already *was* an UNC path, and potentially
contains native symlinks?  In that case you have no reason to disregard
the resulting path from GFPNBH.

And if it was a drive letter path, wouldn't it be nicer to just convert
the UNC path prefix back to the drive letter and keep the rest of the
final path intact?

However, both of these scenarios require extra code, which isn't that
important for now, so, never mind.


Corinna

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019