bug-tar
[Top][All Lists]
Advanced

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

Re: [Bug-tar] tar-1.25: test 39 fails on FreeBSD


From: Christian Weisgerber
Subject: Re: [Bug-tar] tar-1.25: test 39 fails on FreeBSD
Date: Tue, 23 Nov 2010 17:06:43 +0100
User-agent: Mutt/1.4.2.3i

Paul Eggert:

> If I understand things correctly, src/extract.c's extract_file
> is invoking open_output_file, which returns -1 with errno==ELOOP.
> extract_file then should invoke:
> 
>    maybe_recoverable ("./file1", true, &interdir_made)
> 
> maybe_recoverable should execute this code:
> 
>     if (*interdir_made)
>       return RECOVER_NO;
> 
>     switch (e)
>       {
>       case ELOOP:

The problem turns out to be very straightforward: On FreeBSD, the
open() call returns -1 with errno=EMLINK.  This is documented
behavior in FreeBSD's open(2) man page:

  [EMLINK]           O_NOFOLLOW was specified and the target is a symbolic
                     link.

Adding EMLINK to the ELOOP case in maybe_recoverable fixes this (and
doesn't break any other regression tests).

-- 
Christian "naddy" Weisgerber                          address@hidden



reply via email to

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