summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-01-23 17:58:52 -0500
committerChong Yidong <cyd@stupidchicken.com>2011-01-23 17:58:52 -0500
commit1f892d6a154eb6defaf42701f00d9c2e9936c5db (patch)
treed2730d01290aa71c7977f04e24da4f7e929a167e
parenta5aa367aee90a19e74406bb303aea6811c299a10 (diff)
downloademacs-1f892d6a154eb6defaf42701f00d9c2e9936c5db.tar.gz
* movemail.c (main): Use setregid, as setegid is missing on HP-UX (Bug#6811).
Suggested by Peter O'Gorman.
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/movemail.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 421bdc06a43..aa5ae5ba7e6 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-23 Chong Yidong <cyd@stupidchicken.com>
+
+ * movemail.c (main): Use setregid instead of setegid, which is
+ missing on older systems. Suggested by Peter O'Gorman (Bug#6811).
+
2011-01-02 Glenn Morris <rgm@gnu.org>
* ebrowse.c (version) <emacs_copyright>:
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index 3aebf79c6c8..5fcc6de17a6 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -360,7 +360,7 @@ main (argc, argv)
time_t touched_lock, now;
#endif
- if (setuid (getuid ()) < 0 || setegid (real_gid) < 0)
+ if (setuid (getuid ()) < 0 || setregid (-1, real_gid) < 0)
fatal ("Failed to drop privileges", 0, 0);
#ifndef MAIL_USE_MMDF
@@ -387,7 +387,7 @@ main (argc, argv)
if (outdesc < 0)
pfatal_with_name (outname);
- if (setegid (priv_gid) < 0)
+ if (setregid (-1, priv_gid) < 0)
fatal ("Failed to regain privileges", 0, 0);
/* This label exists so we can retry locking
@@ -484,7 +484,7 @@ main (argc, argv)
#endif
/* Prevent symlink attacks truncating other users' mailboxes */
- if (setegid (real_gid) < 0)
+ if (setregid (-1, real_gid) < 0)
fatal ("Failed to drop privileges", 0, 0);
/* Check to make sure no errors before we zap the inbox. */
@@ -519,7 +519,7 @@ main (argc, argv)
#endif /* not MAIL_USE_SYSTEM_LOCK */
/* End of mailbox truncation */
- if (setegid (priv_gid) < 0)
+ if (setregid (-1, priv_gid) < 0)
fatal ("Failed to regain privileges", 0, 0);
#ifdef MAIL_USE_MAILLOCK