[PATCH 0/2] Fix a bad case of absolute path handling

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Nov 11 09:47:35 GMT 2021

On Nov 10 17:22, Ken Brown wrote:
> On 11/10/2021 3:32 PM, corinna-cygwin@cygwin.com wrote:
> > From: Corinna Vinschen <corinna@vinschen.de>
> > 
> > As I told Takashi in PM, I will try to more often send patches to the
> > cygwin-patches ML before pushing them, so there's a chance to chime in.
> > This patch series is supposed to address the `rm -rf' problem reported
> > in https://cygwin.com/pipermail/cygwin/2021-November/249837.html
> > 
> > It was always frustrating, having to allow DOS drive letter paths for
> > backward compatibility.  This here is another case of ambiguity,
> > triggered by the `isabspath' macro handling "X:" as absolute path, even
> > without the trailing slash or backslash.
> > 
> > Check out the 2nd patch for a more detailed description.
> > 
> > While at it, I wonder if we might have a chance to fix these ambiguities
> > in a better way.  For instance, consider this:
> > 
> >    $ mkdir -p test/c:
> >    $ cd test
> > 
> > As non-admin:
> > 
> >    $ touch c:/foo
> >    touch: cannot touch 'c:/foo': Permission denied
> > 
> > As admin, even worse:
> > 
> >    $ touch c:/foo
> >    $ ls /cygdrive/c/foo
> >    foo
> > 
> > As long as we support DOS paths as input, I have a hard time to see how
> > to fix this, but maybe we can at least minimize the ambiguity somehow.
> I can't immediately think of anything.  But is it really impossible to phase
> out DOS path support over a period of time?  We could start with a HEADS-UP,
> asking for comments, then a deprecation announcement, then something like
> the old dosfilewarning option, then a more forceful warning that can't be
> turned off, and finally removal of support.  This could be done over a
> period of several years (not sure how many).

Yeah, we might try again.  Just not over years, we'll probably lose
track over time.  I'd appreciate a shorter period with a chance to see
the end.

The problem is that people are probably using DOS paths all the time.
Makefiles and scripts mixing Cygwin and DOS tools come to mind.

For the time being, I wonder if we could start with isabspath being
always strict so at least X: isn't an abspath at all.

> We could also put lines like
>   # C:/ on /c type ntfs (binary,posix=0)
> into the default /etc/fstab.

Commented out, you mean?  Just as hint?  We could do that.  Personally I
don't like these shortcuts, I rather use a shorter cygdrive prefix, like
/mnt, but I see how this could convince people.  Scripts with mixed
tools will always be a problem, though.


More information about the Cygwin-patches mailing list