David Levine <levinedl(_at_)acm(_dot_)org> wrote:
Marcin wrote:
David Levine <levinedl(_at_)acm(_dot_)org> wrote:
Using setegid() is ok according to POSIX.1-2004, it was previously
just a BSD extension.
Thanks. Committed. I also added a check for success of setegid(),
and adios() on failure.
We also need this:
diff --git a/uip/inc.c b/uip/inc.c
index b457282..7d12842 100644
--- a/uip/inc.c
+++ b/uip/inc.c
@@ -137,7 +137,7 @@ static gid_t return_gid;
#define TRYDROPGROUPPRIVS() DROPGROUPPRIVS()
#define DROPGROUPPRIVS() \
if (setegid(getgid()) != 0) { \
- adios ("setegid", "unable to set group to %ld", (long) getgid()); \
+ adios ("setegid", "unable to restore group to %ld", (long) getgid()); \
}
#define GETGROUPPRIVS() \
if (setegid(return_gid) != 0) { \
@@ -959,6 +959,7 @@ skip:
static void
inc_done (int status)
{
+ done = exit;
if (packfile && pd != NOTOK)
mbx_close (packfile, pd);
if (locked)
Otherwise "inc" loops endlessly (just replace setegid() with setgid()
again to test).
(I changed the message to "restore" for better debugging).
//Marcin
_______________________________________________
Nmh-workers mailing list
Nmh-workers(_at_)nongnu(_dot_)org
https://lists.nongnu.org/mailman/listinfo/nmh-workers