diff options
author | Darren Tucker <dtucker@zip.com.au> | 2006-08-17 19:35:49 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2006-08-17 19:35:49 +1000 |
commit | 3083bc2b52fe00b5c5fe87dd3638969835dab0e8 (patch) | |
tree | 0ffdaf950cd854baca3e1fb54a63ee3f61fc871d | |
parent | e6b641a9a13d664fb7b98227218a0b3f65dfd40c (diff) |
- (dtucker) [configure.ac openbsd-compat/bsd-closefrom.c] Use F_CLOSEM fcntl
for closefrom() on AIX. Pointed out by William Ahern.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | openbsd-compat/bsd-closefrom.c | 7 |
3 files changed, 18 insertions, 3 deletions
@@ -1,6 +1,8 @@ 20060817 - (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c] Include stdlib.h for malloc and friends. + - (dtucker) [configure.ac openbsd-compat/bsd-closefrom.c] Use F_CLOSEM fcntl + for closefrom() on AIX. Pointed out by William Ahern. 20060816 - (djm) [audit-bsm.c] Sprinkle in some headers @@ -5214,4 +5216,4 @@ - (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu -$Id: ChangeLog,v 1.4480 2006/08/17 08:55:27 dtucker Exp $ +$Id: ChangeLog,v 1.4481 2006/08/17 09:35:49 dtucker Exp $ diff --git a/configure.ac b/configure.ac index 31dac052..7a296ae8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.348 2006/08/04 09:44:23 dtucker Exp $ +# $Id: configure.ac,v 1.349 2006/08/17 09:35:49 dtucker Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.348 $) +AC_REVISION($Revision: 1.349 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -180,6 +180,12 @@ case "$host" in [#include <usersec.h>] ) AC_CHECK_FUNCS(setauthdb) + AC_CHECK_DECL(F_CLOSEM, + AC_DEFINE(USE_FCNTL_CLOSEM, 1, [Use F_CLOSEM fcntl for closefrom]), + [], + [ #include <limits.h> + #include <fcntl.h> ] + ) check_for_aix_broken_getaddrinfo=1 AC_DEFINE(BROKEN_REALPATH, 1, [Define if you have a broken realpath.]) AC_DEFINE(SETEUID_BREAKS_SETUID, 1, diff --git a/openbsd-compat/bsd-closefrom.c b/openbsd-compat/bsd-closefrom.c index 3f17302d..e7a521e4 100644 --- a/openbsd-compat/bsd-closefrom.c +++ b/openbsd-compat/bsd-closefrom.c @@ -22,6 +22,9 @@ #include <sys/param.h> #include <unistd.h> #include <stdio.h> +#ifdef HAVE_FCNTL_H +# include <fcntl.h> +#endif #include <limits.h> #include <stdlib.h> #include <stddef.h> @@ -76,6 +79,10 @@ closefrom(int lowfd) } (void) closedir(dirp); } else +#elif defined(USE_FCNTL_CLOSEM) + if (fcntl(lowfd, F_CLOSEM, 0) != -1) { + return; + } else #endif { /* |