summaryrefslogtreecommitdiff
path: root/common/compat.c
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2018-05-29 16:30:35 +0200
committerDaiki Ueno <ueno@gnu.org>2018-05-30 15:21:25 +0200
commit71b62aa1cdbdec3724c8e451f621309994dc59a0 (patch)
tree4ae3c255e69f94c5920b89c1e1b91d6ffd44ebab /common/compat.c
parent79f928492dba6a46c63e77d6b22c17c23e66403b (diff)
common: Don't rely on issetugid() when it is broken
On macOS and FreeBSD, issetugid() has different semantics from the original OpenBSD implementation and cannot reliably detect if the process made setuid/setgid: https://gist.github.com/nicowilliams/4daf74a3a0c86848d3cbd9d0cdb5e26e This should fix: https://bugs.freedesktop.org/show_bug.cgi?id=67451 https://bugs.freedesktop.org/show_bug.cgi?id=100287
Diffstat (limited to 'common/compat.c')
-rw-r--r--common/compat.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/common/compat.c b/common/compat.c
index 2e559c7..1153f95 100644
--- a/common/compat.c
+++ b/common/compat.c
@@ -805,7 +805,7 @@ getauxval (unsigned long type)
extern int __libc_enable_secure;
secure = __libc_enable_secure;
-#elif defined(HAVE_ISSETUGID)
+#elif defined(HAVE_ISSETUGID) && defined(HAVE_ISSETUGID_OPENBSD)
secure = issetugid ();
#elif defined(OS_UNIX)