summaryrefslogtreecommitdiffstats
path: root/src/privsep.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2021-01-27 14:11:52 +0000
committerRoy Marples <roy@marples.name>2021-01-27 14:11:52 +0000
commit3ffb1dd5ee2a4962dd1384e00566996f791fcc78 (patch)
treea3cc128e905dea11b9bc899055bfbc81f2d90cce /src/privsep.c
parent534eb959e84bf397bb465a51d8456ffee4342cee (diff)
downloaddhcpcd-3ffb1dd5ee2a4962dd1384e00566996f791fcc78.tar.xz
privsep: move setting signals to after clearing eloop
Diffstat (limited to 'src/privsep.c')
-rw-r--r--src/privsep.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/privsep.c b/src/privsep.c
index d5c7c562..23ed9e7e 100644
--- a/src/privsep.c
+++ b/src/privsep.c
@@ -369,7 +369,15 @@ ps_dostart(struct dhcpcd_ctx *ctx,
ctx->fork_fd = -1;
}
pidfile_clean();
+
eloop_clear(ctx->eloop);
+ eloop_signal_set_cb(ctx->eloop,
+ dhcpcd_signals, dhcpcd_signals_len, signal_cb, ctx);
+ /* ctx->sigset aready has the initial sigmask set in main() */
+ if (eloop_signal_mask(ctx->eloop, NULL) == -1) {
+ logerr("%s: eloop_signal_mask", __func__);
+ goto errexit;
+ }
/* We are not root */
if (priv_fd != &ctx->ps_root_fd) {
@@ -393,15 +401,6 @@ ps_dostart(struct dhcpcd_ctx *ctx,
ctx->ps_inet_fd = -1;
}
- eloop_signal_set_cb(ctx->eloop,
- dhcpcd_signals, dhcpcd_signals_len, signal_cb, ctx);
-
- /* ctx->sigset aready has the initial sigmask set in main() */
- if (eloop_signal_mask(ctx->eloop, NULL) == -1) {
- logerr("%s: eloop_signal_mask", __func__);
- goto errexit;
- }
-
if (eloop_event_add(ctx->eloop, *priv_fd, recv_msg, recv_ctx) == -1)
{
logerr("%s: eloop_event_add", __func__);