From 37737023a8dccbaa546d1b88999c4d4f8257e436 Mon Sep 17 00:00:00 2001
From: Alexander Bokovoy <ab@samba.org>
Date: Wed, 10 Sep 2003 14:03:08 +0000
Subject: Support for CAN-2003-0689 port from SAMBA_3_0 (This used to be commit
 69b30ec0776b06c62810a3eb1d7be1df3db9e169)

---
 source3/configure.in | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

(limited to 'source3')

diff --git a/source3/configure.in b/source3/configure.in
index a2e04b5d48..151411feb8 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -883,8 +883,23 @@ AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
 #
 case "$host_os" in
     *linux*)
-       # glibc <= 2.3.2 has a broken getgrouplist
-       AC_TRY_RUN([
+	# test if user trusts its own glibc version w.r.t. CAN-2003-0689
+	# Some vendors already provided glibc builds with this fix so getgrouplist() is usable 
+	# on those platforms. Unfortunately, we can't get this information from compiling yet.
+	AC_MSG_CHECKING([whether GNU libc has good getgrouplist w.r.t. CAN-2003-0689])
+	AC_ARG_WITH(good-getgrouplist,
+	[  --with-good-getgrouplist[=no]     whether GNU libc has good getgrouplist w.r.t. CAN-2003-0689 ],
+	[  case "$with_good_getgrouplist" in
+	  yes)
+	  AC_MSG_RESULT(yes)
+          AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
+	  ;;
+	  *)
+	  AC_MSG_RESULT(no)
+	  ;;
+	  esac],
+# glibc <= 2.3.2 has a broken getgrouplist
+AC_TRY_RUN([
 #include <unistd.h>
 #include <sys/utsname.h>
 main() {
@@ -902,8 +917,12 @@ main() {
 }
 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
        if test x"$linux_getgrouplist_ok" = x"yes"; then
+          AC_MSG_RESULT(yes)
           AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
+       else
+          AC_MSG_RESULT(no)
        fi
+)
        ;;
     *)
        AC_CHECK_FUNCS(getgrouplist)
-- 
cgit