17 lines
538 B
Diff
17 lines
538 B
Diff
|
--- src/dnsmasq.c.orig
|
||
|
+++ src/dnsmasq.c
|
||
|
@@ -731,11 +731,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);
|