• Vlad Tsyrklevich's avatar
    Reland "[cfi-icall] Use ProtectedMemory for localtime ptrs" · 812c7d68
    Vlad Tsyrklevich authored
    This is a reland of e77256b1 now that
    crrev.com/00fb4b7e landed fixing the lock-up
    issue we previously saw.
    
    Original change's description:
    > [cfi-icall] Use ProtectedMemory for localtime ptrs
    >
    > Control Flow Integrity [1] indirect call (cfi-icall) checking can not
    > verify that dynamically resolved function pointers call their intended
    > function. Instead we place the LibcFunctions pointers in
    > ProtectedMemory, a wrapper for keeping variables in read-only memory
    > except for when they are initialized.  After setting the pointers in
    > protected memory we can use the UnsanitizedCfiCall wrapper to disable
    > cfi-icall checking when calling them since we know they can not be
    > tampered with.
    >
    > [1] https://www.chromium.org/developers/testing/control-flow-integrity
    >
    > Bug: 771365
    > Change-Id: Ib74faff066e1107293b67d11f2a1a054bbff08b5
    > Reviewed-on: https://chromium-review.googlesource.com/769853
    > Reviewed-by: Chris Palmer <palmer@chromium.org>
    > Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
    > Reviewed-by: Peter Collingbourne <pcc@chromium.org>
    > Commit-Queue: Peter Collingbourne <pcc@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#517152}
    
    Bug: 771365
    Change-Id: Iaba5de8e37332878cd0b85c9dbdafc08e2d9a6ba
    Reviewed-on: https://chromium-review.googlesource.com/782739Reviewed-by: default avatarChris Palmer <palmer@chromium.org>
    Reviewed-by: default avatarPeter Collingbourne <pcc@chromium.org>
    Commit-Queue: Peter Collingbourne <pcc@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#518373}
    812c7d68
zygote_main_linux.cc 23.6 KB