Re: For review: documentation of clone3() system call

From: Florian Weimer
Date: Mon Nov 11 2019 - 10:03:26 EST


* Michael Kerrisk:

> Another difference for the raw clone() system call is that the
> stack argument may be NULL, in which case the child uses a dupliâ
> cate of the parent's stack. (Copy-on-write semantics ensure that
> the child gets separate copies of stack pages when either process
> modifies the stack.) In this case, for correct operation, the
> CLONE_VM option should not be specified. (If the child shares the
> parent's memory because of the use of the CLONE_VM flag, then no
> copy-on-write duplication occurs and chaos is likely to result.)

I think sharing the stack also works with CLONE_VFORK with CLONE_VM, as
long as measures are taken to preserve the return address in a register.

Thanks,
Florian