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
commitfbf4af3a43b44258037dbd657efe828419f6ba45 (patch)
treef3f2f73c542ae4544cbb589f212eeded068aee2d
parent19634648a609af92c97a084cd4d3ad3b10113c1d (diff)
downloademacs-fbf4af3a43b44258037dbd657efe828419f6ba45.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