On 10/09/2012 03:05 AM, Richard W.M. Jones wrote:
> On Tue, Oct 09, 2012 at 09:54:45AM +0100, Richard W.M. Jones wrote:
>> The F_DUPFD_CLOEXEC fix that Al Viro posted fixes 3/4 of the
>> bugs, but I'm still investigating this one:
>>
>>> test-dup3.c:108: assertion failed
>>> #      ASSERT (dup3 (fd, fd, o_flags) == -1);
> 
> Thanks to Jim for pointing out this is a kernel bug, because the
> proposed standard for dup3 specifies that fd1 != fd2 else error:
> 
> http://austingroupbugs.net/view.php?id=411

I agree that it is a regression in behavior, and wrote that Austin Group
wording based on the previous Linux behavior.  However, rather than
claiming it is a kernel bug, we must also consider whether it should be
fixed in glibc; after all, if the kernel is easier to implement dup2 and
dup3 alike (with no special casing of dup-to-self), it's not too hard
for glibc to special-case a dup-to-self check without even calling into
the kernel.

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to