Re: [PATCH] selftests/harness: Flush stdout before forking

From: Kees Cook
Date: Thu Sep 17 2020 - 18:07:39 EST


On Thu, Sep 17, 2020 at 02:15:19PM +1000, Michael Ellerman wrote:
> The test harness forks() a child to run each test. Both the parent and
> the child print to stdout using libc functions. That can lead to
> duplicated (or more) output if the libc buffers are not flushed before
> forking.
>
> It's generally not seen when running programs directly, because stdout
> will usually be line buffered when it's pointing to a terminal.
>
> This was noticed when running the seccomp_bpf test, eg:
>
> $ ./seccomp_bpf | tee test.log
> $ grep -c "TAP version 13" test.log
> 2

Oh thank you for tracking this down! I thought seccomp wasn't killing a
child or something, and hadn't found it yet. :)

Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>

--
Kees Cook