From a80f124e49f0f890def2175bc5aef3e265d13404 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Wed, 10 Jul 2013 20:46:26 -0700 Subject: [PATCH] [v9_6] portability fix 3614. [port] Check for . [RT #34162] (cherry picked from commit c174d5c13c03dd59283243e3fd5461d41140a798) (cherry picked from commit e57ea0e52f09ac5a6c1a0e7af0538345dd2b744b) (cherry picked from commit 862f188804f5147b78fe0882aebf058f3489aaaa) --- CHANGES | 2 ++ bin/named/unix/os.c | 3 +++ config.h.in | 3 +++ configure | 18 +++++++++++++++++- configure.in | 7 ++++++- 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 30a8859829..0359c6aefa 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +3614. [port] Check for . [RT #34162] + 3611. [bug] Improved resistance to a theoretical authentication attack based on differential timing. [RT #33939] diff --git a/bin/named/unix/os.c b/bin/named/unix/os.c index a7ddee5f86..750a8a64d8 100644 --- a/bin/named/unix/os.c +++ b/bin/named/unix/os.c @@ -117,6 +117,9 @@ static int dfd[2] = { -1, -1 }; static isc_boolean_t non_root = ISC_FALSE; static isc_boolean_t non_root_caps = ISC_FALSE; +#ifdef HAVE_LINUX_TYPES_H +#include +#endif #ifdef HAVE_SYS_CAPABILITY_H #include #else diff --git a/config.h.in b/config.h.in index 6c7968e5e3..374b323097 100644 --- a/config.h.in +++ b/config.h.in @@ -241,6 +241,9 @@ int sigwait(const unsigned int *set, int *sig); /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_CAPABILITY_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_TYPES_H + /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H diff --git a/configure b/configure index 6190e94205..5d60e18f1b 100755 --- a/configure +++ b/configure @@ -16910,10 +16910,26 @@ fi case "$enable_linux_caps" in yes|'') + for ac_header in linux/types.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "linux/types.h" "ac_cv_header_linux_types_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_types_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_TYPES_H 1 +_ACEOF + +fi + +done + for ac_header in linux/capability.h sys/capability.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_LINUX_TYPES_H + #include + #endif + +" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 diff --git a/configure.in b/configure.in index 4274f7afe0..34c256a73c 100644 --- a/configure.in +++ b/configure.in @@ -2070,7 +2070,12 @@ AC_ARG_ENABLE(linux-caps, [ --disable-linux-caps disable linux capabilities]) case "$enable_linux_caps" in yes|'') - AC_CHECK_HEADERS(linux/capability.h sys/capability.h) + AC_CHECK_HEADERS(linux/types.h) + AC_CHECK_HEADERS([linux/capability.h sys/capability.h], [], [], + [#ifdef HAVE_LINUX_TYPES_H + #include + #endif + ]) AC_CHECK_LIB(cap, cap_set_proc) ;; no)