Hi Rik,
Thanks for the blazingly fast response :-)
On 9 October 2017 at 21:08, Rik van Riel [off-list ref] wrote:
On Mon, 2017-10-09 at 21:06 +0200, Michael Kerrisk (man-pages) wrote:
quoted
Hi Rik,
I have a follow-up question re wipe-on-fork. What are the semantics
for this setting with respect to fork() and exec()? That is, in the
child of a fork(), does the flag remain set for the specified address
range? (My quick read of the source suggests yes, but I have not
tested.) And, when we do an exec(), my assumption is that the flag is
cleared for the address range, but it would be good to have
confirmation.
Indeed, on exec() the flag is cleared, because all
memory regions get replaced on exec().
Thanks.
The flag remains across a fork(), so if a child task
were to fork, the memory would be empty of contents
again in its child. This seems to most closely match
the use case of discarding things like cryptographic
secrets at fork time.
Thanks!
I'll add this info to the madvise(2) page.
Cheers,
Michael
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/