Don't call daemon() after proc_init(), otherwise the child processes
authorgerhard <gerhard@openbsd.org>
Wed, 28 Jun 2023 12:31:19 +0000 (12:31 +0000)
committergerhard <gerhard@openbsd.org>
Wed, 28 Jun 2023 12:31:19 +0000 (12:31 +0000)
would lose their parent.

ok tobhe@

sbin/iked/iked.c
sbin/iked/proc.c

index 7af05d9..66268a9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: iked.c,v 1.65 2023/06/25 08:07:04 op Exp $    */
+/*     $OpenBSD: iked.c,v 1.66 2023/06/28 12:31:19 gerhard Exp $       */
 
 /*
  * Copyright (c) 2019 Tobias Heider <tobias.heider@stusta.de>
@@ -203,8 +203,6 @@ main(int argc, char *argv[])
 
        setproctitle("parent");
        log_procinit("parent");
-       if (!debug && daemon(0, 0) == -1)
-               err(1, "failed to daemonize");
 
        event_init();
 
index 87a8067..6ade731 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: proc.c,v 1.38 2023/03/05 22:17:22 tobhe Exp $ */
+/*     $OpenBSD: proc.c,v 1.39 2023/06/28 12:31:19 gerhard Exp $       */
 
 /*
  * Copyright (c) 2010 - 2016 Reyk Floeter <reyk@openbsd.org>
@@ -205,6 +205,8 @@ proc_init(struct privsep *ps, struct privsep_proc *procs, unsigned int nproc,
 
        if (proc_id == PROC_PARENT) {
                privsep_process = PROC_PARENT;
+               if (!debug && daemon(0, 0) == -1)
+                       fatal("failed to daemonize");
                proc_setup(ps, procs, nproc);
 
                /*