From: Rei Thiessen Date: Wed, 29 Jun 2011 18:48:40 GMT Subject: Re: [PATCH] cygwin: set write permission before unlink Message-ID: In-Reply-To: <09c0b1900a67bd1f701c0b23954a34ab.squirrel@mail.localhost.li> Another point of concern is that the user might have specifically set the read-only flag only certain files to protect them from changes/deletion, but after the patch, git can delete them with impunity. But then, a file's permission isn't supposed to matter to unlink() anyways. Interestingly, Cygwin's packaged unlink command-line utility will delete read-only files, so Cygwin's attempt to fake permissions through the read-only flag when a filesystem is mounted with "noacl" seems to be inconsistent. I'll leave this issue up to Cygwin's package maintainer for git. Regards, Rei 2011/6/29 Christof Krüger : >> +#undef unlink >> +int cygwin_unlink(const char *pathname) >> +{ >> +     /* "read-only" files can't be unlinked */ >> +     chmod(pathname, 0666); >> +     return unlink(pathname); >> +} > > I've no idea on how cygwin maps file permissions to the underlying > filesystem, but the above raised my attention. Doesn't chmodding the file > to 0666 open a small windows where "group" and "other" users have read > access to the file? This might be unwanted by the user and could be > exploited by some attacker listening for changes on that file. > Or am I too paranoid? > > Regards, >  Chris > >