diff options
| author | Roy Marples <roy@marples.name> | 2020-09-06 13:53:08 +0100 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2020-09-06 13:53:08 +0100 |
| commit | 6556019a6dc8f79dd5c235817cf95b98139b4eb4 (patch) | |
| tree | 03a790444b156b2e72f113bff8db126e89955645 /src/privsep.c | |
| parent | 8f4e3268eae80ed4cd53520cb36c228f127d0fcd (diff) | |
| download | dhcpcd-6556019a6dc8f79dd5c235817cf95b98139b4eb4.tar.xz | |
privsep: dump leases in a sandbox
Diffstat (limited to 'src/privsep.c')
| -rw-r--r-- | src/privsep.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/privsep.c b/src/privsep.c index 5a10d26a..3f1dc2d6 100644 --- a/src/privsep.c +++ b/src/privsep.c @@ -124,9 +124,10 @@ ps_dropprivs(struct dhcpcd_ctx *ctx) if (chdir("/") == -1) logerr("%s: chdir `/'", __func__); - if (setgroups(1, &pw->pw_gid) == -1 || + if ((setgroups(1, &pw->pw_gid) == -1 || setgid(pw->pw_gid) == -1 || - setuid(pw->pw_uid) == -1) + setuid(pw->pw_uid) == -1) && + (errno != EPERM || ctx->options & DHCPCD_FORKED)) { logerr("failed to drop privileges"); return -1; |
