+2013-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ 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.
+
2013-02-06 Paul Eggert <eggert@cs.ucla.edu>
extensions: port better to MINUX 3, HP-UX, autoheader 2.62
#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
}
# Prerequisites of lib/secure_getenv.c.
AC_DEFUN([gl_PREREQ_SECURE_GETENV], [
AC_CHECK_FUNCS([__secure_getenv])
+ if test $ac_cv_func___secure_getenv = no; then
+ AC_CHECK_FUNCS([issetugid])
+ fi
])