From: David Kastrup Date: Mon, 16 Jul 2007 19:57:04 GMT Subject: Re: "git clone" executed as root on solaris 10 shreds UFS (it ispossible to create hardlinks for directories as root under solaris) Message-ID: <85644knmun.fsf@lola.goethe.zz> In-Reply-To: <20070716154559.GD19073@lavos.net> bdowning@lavos.net (Brian Downing) writes: > On Mon, Jul 16, 2007 at 04:35:10PM +0200, Johannes Sixt wrote: >> It tries to remove a *file* that is in the way and create the directory >> in its place. But since your unlink() behaves incorrectly (it is >> supposed to *fail* for directories), the logic does not quite work as >> expected - it mistakes the directory for a file. > > http://www.opengroup.org/onlinepubs/007908799/xsh/unlink.html > > | The path argument must not name a directory unless the process has > | appropriate privileges and the implementation supports using unlink() on > | directories. Isn't it funny? The problem with the git code is that the path argument must not name a directory _if_ the process has appropriate privileges and the implementation supports using unlink() on directories. Failure is not an option, it is a requirement. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum