[Top][All Lists]
[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