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

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Fri Nov 12 16:30:27 GMT 2021


On 2021-11-10 15: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.
> 
> 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.

NO! BTDT GTS.
Try getting help from any DOS/cmd type command or subcommand.
Shell expands /? to list of all mapped drives /c /d ... /s /v /y which 
gives you a bunch of potentially destructive switches.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]


More information about the Cygwin-patches mailing list