aboutsummaryrefslogtreecommitdiff
path: root/src/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/socket.c b/src/socket.c
index aa01543..40c7aa7 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -24,12 +24,15 @@ switch_eids (uid_t *puid, gid_t *pgid, mode_t *pumask)
gid_t ogid = getegid ();
mode_t omask = umask (*pumask);
+ if ((*puid && *puid != ouid) || (*pgid && *pgid != ogid))
+ {
if (setegid (*pgid))
logmsg (LOG_ERR, _("cannot switch to EGID %lu: %s"),
(unsigned long) *pgid, strerror (errno));
if (seteuid (*puid))
logmsg (LOG_ERR, _("cannot switch to EUID %lu: %s"),
(unsigned long) *puid, strerror (errno));
+ }
*puid = ouid;
*pgid = ogid;
*pumask = omask;
@@ -637,4 +640,3 @@ pies_pause (void)
}
}
}
-

Return to:

Send suggestions and report system problems to the System administrator.