Date: Sat, 16 Jun 2001 14:34:07 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: "Steve O'Hara-Smith" <steveo@eircom.net> Cc: David Wolfskill <david@catwhisker.org>, current@FreeBSD.ORG Subject: Re: symlink(2) [Was: Re: tcsh.cat] Message-ID: <Pine.BSF.4.21.0106161355360.89789-100000@besplex.bde.org> In-Reply-To: <20010615183515.36f81380.steveo@eircom.net>
index | next in thread | previous in thread | raw e-mail
On Fri, 15 Jun 2001, Steve O'Hara-Smith wrote:
> On Fri, 15 Jun 2001 06:31:12 -0700 (PDT)
> David Wolfskill <david@catwhisker.org> wrote:
>
> DW> Indeed: it is my understanding that the "path name" interpretation is
> DW> an issue at the time of reference, not (necessarily) the time of
> DW> creation. It has, to the best of my knowledge, been valid to create a
> DW> symlink prior to a point when its target exists.
>
> It has been on evey platform I have ever used ln -s on.
>
> DW> One may well argue that this is "broken" in some way(s). Still, changing
> DW> it at this point could well be considered a POLA violation, at best.
>
> I would argue loud and long that changing that *would* be broken. There
> is never a guarantee (or even an implication) that a symlink points to a
> valid directory entry (think unmounted filesystems, NFS ...). I find it hard
> to imagine why creation time should be special in that regard.
We are (or at least I am) talking about changing it to prevent links to a
string that can _never_ be a valid pathname. Fortunately, in POSIX there
is only one such string (the empty string).
Here's an example of a standard utility being clueless about symlinks to
nothing:
$ ln -s '' foo
$ cp foo bar
cp: foo is a directory (not copied)
foo is certainly not a directory. The bug seems to be in fts.
cp is also broken for symlinks to valid pathnames for nonexistent files;
$ rm -f foo
$ ln -s /nonesuch foo
$ cp foo bar
This duplicates foo as a symlink, but should just fail.
Bruce
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0106161355360.89789-100000>
