• Kirill Tkhai's avatar
    clone_noasan: Allow to create CLONE_VM|CLONE_VFORK processes · ef65d98a
    Kirill Tkhai authored
    Picked from patch "[PATCH RFC] namespaces: use CLONE_VFORK
    with CLONE_VM when it is possible" by Andrew Vagin.
    
    Currenly parent touches child's stack, as in moment of clone() call
    its stack pointer is above the child's (we allocate char stack[128]
    on parent's stack). This prevents to create CLONE_VM|CLONE_VFORK
    processes, because the child uses stack addresses occupied by parent.
    
    The patch changes clone_noasan() behaviour and allows to do that
    with the same memory consumption. We give a child memory, which
    is not used by parent clone(), so parent's and child's stacks
    have no tntersection.
    
    This allows to create CLONE_VM|CLONE_VFORK processes.
    Signed-off-by: 's avatarKirill Tkhai <ktkhai@virtuozzo.com>
    Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
    ef65d98a
clone-noasan.c 1.11 KB