bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: test-linkat failure on IRIX


From: Eric Blake
Subject: Re: test-linkat failure on IRIX
Date: Wed, 22 Jun 2011 10:10:57 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.10

On 06/20/2011 04:13 PM, Eric Blake wrote:
> On 06/19/2011 08:48 AM, Bruno Haible wrote:
>>> IRIX 6.5:
>>>
>>> test-linkat.c:234: assertion failed
>>> ksh[10]: 1760562 Abort(coredump)
>>> FAIL: test-linkat
>>
>> It fails here:
>>
>>   /* AT_SYMLINK_FOLLOW only follows first argument, not second.  */
>>   errno = 0;
>>   ASSERT (linkat (dfd, BASE "link1", dfd, BASE "link4", 0) == -1);  <=======
>>   ASSERT (errno == EEXIST);
> 
> Thanks for the report.  I'll have to take a closer look into this, the
> next time I log into an IRIX machine (hopefully later this week).

The bug is in IRIX link(2):

$ mkdir d
$ ln -s d 1
$ ln -s nowhere 4
$ link 1 4
$

All other platforms (correctly) reject this with EEXIST, since 4 exists
(even though it is a broken symlink); but IRIX proceeds to create
'nowhere' as a hardlink to '1' (that is, two names for the same symlink
pointing to 'd').  Or, put another way, IRIX dereferences a dangling
target symlink during the link(2) call, where all other implementations
do not.  POSIX requires failure:

[EEXIST] The path2 argument resolves to an existing directory entry or
refers to a
        symbolic link.

Looks like test-link needs to be beefed up to catch this, and fixing
rpl_link should in turn fix the linkat tests.

-- 
Eric Blake   address@hidden    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]