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

Ken Brown kbrown@cornell.edu
Wed Nov 10 22:22:05 GMT 2021


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.

LGTM.

> 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).

We could also put lines like

   # C:/ on /c type ntfs (binary,posix=0)

into the default /etc/fstab.

Ken


More information about the Cygwin-patches mailing list