• Michael Lippautz's avatar
    cppgc: Allow CrossThreadPersistent to access poisoned memory from GC · c58862c3
    Michael Lippautz authored
    Allow CrossThreadPersistent and its weak form to access ASAN poisoned
    memory from the GC entry points.
    
    In general, payloads of to-be-finalized objects are poisoned until the
    finalizer actually runs to avoid accidentally touching that payload.
    
    In the case of cross-thread handles, these may need to be cleared by a
    different thread before the finalizer actually runs. In order to clear
    those references, the slot needs to be unpoisoned.
    
    This is issue is ASAN-only and does not affect production or other
    debug builds.
    
    Bug: chromium:1230599, chromium:1056170
    Change-Id: If4d0808953047319b02653821abbb5c638084dc5
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3040845
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#75846}
    c58862c3
cross-thread-persistent.h 13.1 KB