]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-test: Update subprocess list after forking
authorAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 21 Jul 2021 11:05:34 +0000 (14:05 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 23 Jul 2021 10:36:12 +0000 (13:36 +0300)
Due to a race condition, we could end up killing PID 0 by accident
sometimes.

src/lib-test/test-subprocess.c

index aec1ddde5060ca7ac0668eb5e1a00b0838e83a47..5fe765f5f7fc9c4da22de99b5fbb10518b164fea 100644 (file)
@@ -86,7 +86,6 @@ void test_subprocess_fork(int (*func)(void *context), void *context,
        struct test_subprocess *subprocess;
 
        subprocess = i_new(struct test_subprocess, 1);
-       array_push_back(&test_subprocesses, &subprocess);
 
        lib_signals_ioloop_detach();
 
@@ -100,6 +99,7 @@ void test_subprocess_fork(int (*func)(void *context), void *context,
                i_unreached();
        }
 
+       array_push_back(&test_subprocesses, &subprocess);
        lib_signals_ioloop_attach();
 }