diff --git a/src/exec.c b/src/exec.c
index c6a58d1cff68b62bad8de377a1d4058136579edf..b25e76979ebb2322db79a5acdd746d28ecf73335 100644 (file)
--- a/src/exec.c
+++ b/src/exec.c
}
} /* if (pl->group == NULL) */
+#if HAVE_SETGROUPS
+ if (getuid () == 0)
+ {
+ gid_t glist[2];
+ size_t glist_len;
+
+ glist[0] = gid;
+ glist_len = 1;
+
+ if (gid != egid)
+ {
+ glist[1] = egid;
+ glist_len = 2;
+ }
+
+ setgroups (glist_len, glist);
+ }
+#endif /* HAVE_SETGROUPS */
+
status = setgid (gid);
if (status != 0)
{