• riku.voipio's avatar
    sandbox arm64: align stack 16 bytes · f352d974
    riku.voipio authored
    chrome fails to start with user namespace sandboxing:
    
    [866:866:0120/134742:FATAL:zygote_host_impl_linux.cc(182)] Check failed: process.IsValid().
    Failed to launch zygote process
    
    With strace..
    
    clone(child_stack=0x7ffd28fd98, flags=CLONE_NEWUSER|CLONE_NEWPID|CLONE_NEWNET|SIGCHLD) = -1 EINVAL (Invalid argument)
    
    Which compared to kernel sources[1], shows that stack needs to be 16
    bytes aligned. because stack grows downward, this patch assumes
    PTHREAD_STACK_MIN is dividable by 16 too.
    
    [1] http://lxr.free-electrons.com/source/arch/arm64/kernel/process.c#L267
    
    BUG=581018
    R=keescook@chromium.org,jln@chromium.org,rsesek@chromium.org,thakis@chromium.org
    TEST=base_unittests ProcessUtilTest.* and sandbox_linux_unittests NamespaceSandboxTest.*
    
    Review URL: https://codereview.chromium.org/1617763002
    
    Cr-Commit-Position: refs/heads/master@{#371809}
    f352d974
launch_posix.cc 26.4 KB