• Alexander Kartashov's avatar
    cr-restore: align the stack on 8-byte boundary · a27f0e5c
    Alexander Kartashov authored
    The section 5.2.1.2 of the AAPCS says that the stack must be 8-byte aligned
    and this rule is broken when the thread restore_task_with_children()
    is forked by the function fork_with_pid() since the variable ca
    and its field stack are likely to be 4-byte aligned.
    
    This patch forces 8-byte alingment of the field cr_clone_arg::stack.
    This made the following tests pass on ARM:
    * static/shm,
    * static/ipc_namespace.
    
    Particulary the unaligned stack results in incorrect passing
    of the 64-bit argument to the function snprintf() in the function
    sysctl_write_u64().
    Signed-off-by: 's avatarAlexander Kartashov <alekskartashov@parallels.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    a27f0e5c
cr-restore.c 41.3 KB