• Yuwei Huang's avatar
    [gRPC] Suppress CFI cast checks · 5139af43
    Yuwei Huang authored
    ChromeOS builders build Chrome with CFI cast check enabled, so using
    reinterpret_cast on invalid/uninitialized pointer will crash Chrome.
    This is what happened in grpc_core::InlinedVector, which tries to use
    reinterpret_cast before initializing the storage.
    
    While the proper fix should be calling the placement-new operator
    directly on the raw (void*) pointer, the easiest and safest fix for M76
    is just to disable CFI cast checks when building the gRPC library.
    
    I've verified that the crash was reproducible with
    ftl_signaling_strategy if I add `is_cfi=true` (and other required
    arguments) to GN args, and the crash goes away once I've added these
    compiler flag.
    
    Bug: 972108
    Change-Id: Idf874a028af002fafe3a4905d70a3bca71777e42
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1660194
    Commit-Queue: Joe Downing <joedow@chromium.org>
    Reviewed-by: default avatarJoe Downing <joedow@chromium.org>
    Auto-Submit: Yuwei Huang <yuweih@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#669203}
    5139af43
BUILD.gn 33.3 KB