summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@apple.com>2011-10-06 10:50:54 -0700
committerJeremy Huddleston <jeremyhu@apple.com>2011-10-06 10:50:54 -0700
commit82bec8b84d90d37f75f10b3abe9ec34a3415a622 (patch)
tree73810165ed07c755ad35c025bcccbf4caefc0270
parent290c32fb19d901306c4da1119a679112490cb838 (diff)
Fix ifdef-foo for the BSDs which are still living in the 90s
NetBSD and FreeBSD still don't _POSIX_SAVED_IDS https://bugs.freedesktop.org/show_bug.cgi?id=41513 Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
-rw-r--r--sys.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys.c b/sys.c
index aca656a..804bdbb 100644
--- a/sys.c
+++ b/sys.c
@@ -491,12 +491,7 @@ int
droppriv(void)
{
int rc;
-#if (defined(BSD) && !defined(_POSIX_SAVED_IDS)) || defined(_MINIX)
- rc = setuid(getuid());
- if (rc >= 0) {
- rc = setgid(getgid());
- }
-#elif defined(_POSIX_SAVED_IDS)
+#if defined(_POSIX_SAVED_IDS)
uid_t uid = getuid();
uid_t euid = geteuid();
gid_t gid = getgid();
@@ -510,6 +505,11 @@ droppriv(void)
if (rc >= 0)
rc = setgid(gid);
}
+#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(_MINIX)
+ rc = setuid(getuid());
+ if (rc >= 0) {
+ rc = setgid(getgid());
+ }
#else
uid_t uid = getuid();
uid_t euid = geteuid();