Subject: Re: bug#13447: ln "" foo gives misleading error message

From: Eric Blake <[email-masked]>
Date: Thu, 17 Jan 2013 09:08:51 -0700

On 01/15/2013 07:15 AM, Eric Blake wrote:
> [adding the Austin Group]
> 

> 
> What do others on the Austin Group think about an empty string for path1
> in symlink()?  Current Linux rejects the symlink() call with ENOENT;
> FreeBSD 8.2 allows it but refuses to resolve the symlink ("ln -s '' a &&
> ls a/" reports ENOENT); Solaris 10 allows it and resolves the symlink as
> though it were '.' ("ln -s '' a && ls a/" reports the current directory
> contents).

In today's Austin Group meeting, I was tasked to open a new bug that
would state specifically how the empty symlink is resolved; the intent
is to allow both Solaris behavior (current directory) and BSD behavior
(ENOENT).  Meanwhile, everyone was in agreement that the Linux kernel
has a bug for rejecting the creation of an empty symlink, but once that
bug is fixed, then Linux can choose either Solaris or BSD behavior for
how to resolve such a symlink.

It will probably be a bug report similar to this one, which regarded how
to handle a symlink containing just slashes:
http://austingroupbugs.net/view.php?id=541

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org