diff options
author | Daiki Ueno <dueno@redhat.com> | 2018-05-29 16:30:35 +0200 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2018-05-30 15:21:25 +0200 |
commit | 71b62aa1cdbdec3724c8e451f621309994dc59a0 (patch) | |
tree | 4ae3c255e69f94c5920b89c1e1b91d6ffd44ebab /common | |
parent | 79f928492dba6a46c63e77d6b22c17c23e66403b (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')
-rw-r--r-- | common/compat.c | 2 |
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) |