From: Brian Downing Date: Mon, 16 Jul 2007 15:45:59 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: <20070716154559.GD19073@lavos.net> In-Reply-To: <469B821E.85E5EDA9@eudaptics.com> 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. The above seems to imply that implementations are free to do something with directories passed to unlink, and that it is the responsibility if the user not to do that unless they know what is going to happen. -bcd