diff lib/secure_getenv.c @ 17322:d77c98cd7cfd

secure_getenv: port better to FreeBSD and Solaris * lib/secure_getenv.c [!HAVE___SECURE_GETENV]: Include unistd.h if HAVE_ISSETUGID, otherwise define a dummy issetugid. (secure_getenv) [!HAVE___SECURE_GETENV]: Use getenv if not issetugid. This works better on BSDish platforms. * m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV): Test for issetugid if __secure_getenv is missing.
author Paul Eggert <eggert@cs.ucla.edu>
date Thu, 07 Feb 2013 15:34:23 -0800
parents 8108e0239bb6
children a56636d89038
line wrap: on
line diff
--- a/lib/secure_getenv.c
+++ b/lib/secure_getenv.c
@@ -17,12 +17,23 @@
 
 #include <stdlib.h>
 
+#if !HAVE___SECURE_GETENV
+# if HAVE_ISSETUGID
+#  include <unistd.h>
+# else
+#  undef issetugid
+#  define issetugid() 1
+# endif
+#endif
+
 char *
 secure_getenv (char const *name)
 {
 #if HAVE___SECURE_GETENV
   return __secure_getenv (name);
 #else
-  return 0;
+  if (issetugid ())
+    return 0;
+  return getenv (name);
 #endif
 }