--- src/dnsmasq.c.orig +++ src/dnsmasq.c @@ -581,11 +581,10 @@ int main (int argc, char **argv) if (!option_bool(OPT_DEBUG) && getuid() == 0) { int bad_capabilities = 0; - gid_t dummy; - /* remove all supplementary groups */ + /* set the supplementary groups of the daemon user */ if (gp && - (setgroups(0, &dummy) == -1 || + (initgroups(daemon->username, gp->gr_gid) == -1 || setgid(gp->gr_gid) == -1)) { send_event(err_pipe[1], EVENT_GROUP_ERR, errno, daemon->groupname);