[Bug 3336] openssh-8.6_p1 fails to build tests with glibc 2.34

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Tue Aug 10 20:19:14 AEST 2021


https://bugzilla.mindrot.org/show_bug.cgi?id=3336

Darren Tucker <dtucker at dtucker.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dtucker at dtucker.net

--- Comment #1 from Darren Tucker <dtucker at dtucker.net> ---
Sigh.  From the OpenBSD closefrom(2) man page:
"""
     int
     closefrom(int fd);
[...]
HISTORY
     The closefrom() function first appeared in Solaris 9 and has been
     available since OpenBSD 3.5.
"""
However in glibc 2.34:

$ grep closefrom posix/unistd.h
extern void closefrom (int __lowfd) __THROW;

(Despite its presence under posix/, POSIX does not specify closefrom():
https://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html
"""
The standard developers rejected a proposal to add closefrom() to the
standard. Because the standard permits implementations to use inherited
file descriptors as a means of providing a conforming environment for
the child process, it is not possible to standardize an interface that
closes arbitrary file descriptors above a certain value while still
guaranteeing a conforming environment.
"""

Of the systems that I have at hand:
 - on OpenBSD 6.9, NetBSD 8 and DragonFlyBSD 6, MINIX3 closefrom
returns int.
 - on Solaris 10, FreeBSD 12 closefrom return void.

so it's already a tire fire.

I vaguely recall a reason it doesn't include openbsd-compat.h.  We
might be able to get away with just config.h and HAVE_CLOSEFROM.

-- 
You are receiving this mail because:
You are watching someone on the CC list of the bug.
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list