Strange paths in NTFS reparse points created by Cygwin Setup for e.g. TTF fonts

L A Walsh cygwin@tlinx.org
Fri Nov 6 05:31:09 GMT 2020


On 2020/11/05 13:41, Michael Soegtrop via Cygwin wrote:
> I wonder if the path "/mnt/c/Windows/Fonts/wingding.ttf" is something 
> which should be written into a NTFS reparse point by cygwin setup. 
> Probably not - it looks like a cygwin path and it is understandable that 
> this confuses NTFS.
>   
====
    Uh....except that "/mnt/c/Windows/Fonts/wingding.ttf" is a valid
NT pathname (file and reg).  For that matter, "/mnt/\x00\x01\x04" is a valid
NT pathname -- how, why?: NT uses a 'count' hidden before the string, so any
character is valid.  However, the above is not universally true in 'Windows'
where some system libraries enforce using backslash as the separator.

    I'm guessing you get some permission denied messages when you try
to delete some fonts.  This can happen in 2 cases: 1) if you try to 
delete the
file in cygwin or 2), if some program hardlinked the font to the same in the
windows directory instead of symlinking it. 

    With both, it comes down to your delete command trying to delete
(for example) a font that is linked into the /windows/fonts dir
and some program (or lib) already has it open.

    Generally, you can't delete *open* files in Windows.  In windows,
an open will lock some range of bytes on the disk.  Windows "lock"s
are locks on byte ranges, "on disk" that windows won't let you write
to, move or delete while someone has that file open.




   


More information about the Cygwin mailing list