Skip to content
  • Ben Gamari's avatar
    rts: Ensure that pinned allocations respect block size · fd8c5769
    Ben Gamari authored and Marge Bot's avatar Marge Bot committed
    Previously, it was possible for pinned, aligned allocation requests to
    allocate beyond the end of the pinned accumulator block. Specifically,
    we failed to account for the padding needed to achieve the requested
    alignment in the "large object" check. With large alignment requests,
    this can result in the allocator using the capability's pinned object
    accumulator block to service a request which is larger than
    `PINNED_EMPTY_SIZE`.
    
    To fix this we reorganize `allocatePinned` to consistently account for
    the alignment padding in all large object checks. This is a bit subtle
    as we must handle the case of a small allocation request filling the
    accumulator block, as well as large requests.
    
    Fixes #23400.
    fd8c5769