• Ken Rockot's avatar
    [mojo] Don't crash on BigBuffer allocation failure · a8234d9a
    Ken Rockot authored
    A CHECK was added to disambiguate certain large IPC cases from others.
    The gist is that BigBuffer fields attempt to use shared memory, but fall
    back on inlined data when shared memory allocation fails. This can
    result in oversized IPC messages being sent and causing intentional
    crashes.
    
    This CL removes the CHECK in favor of sending an invalid BigBuffer
    (tagged with a special union field) in cases where shared memory
    allocation fails and we think the message is too large to fall back
    onto inline encoding. The deserialization traits for BigBuffer and
    BigBufferView will always reject such invalid BigBuffer encodings,
    resulting in an interface error.
    
    Also updates RenderFrameImpl to tolerate its ClipboardHostPtr seeing
    errors as a result of this validation failure mode.
    
    Bug: 900113
    Change-Id: Ia66e9cee00819f0d61e198051b53a35c5150b399
    Reviewed-on: https://chromium-review.googlesource.com/c/1308095
    Commit-Queue: Ken Rockot <rockot@google.com>
    Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
    Reviewed-by: default avatarNasko Oskov <nasko@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#604431}
    a8234d9a
big_buffer.mojom 861 Bytes