llvm-project
20edc849 - [compiler-rt][TySan] Use pointer-width types for shadow memory ops (#191602)

Commit
9 days ago
[compiler-rt][TySan] Use pointer-width types for shadow memory ops (#191602) The TySan runtime used uint64_t/int64_t casts for shadow memory pointer arithmetic and interior-byte marker values. These are incorrect on 32-bit targets where pointers are 4 bytes: the shadow entries are pointer-sized, so the offsets and marker values must also be pointer-sized. Replace uint64_t/int64_t with uptr/sptr (sanitizer_common's pointer-width typedefs) throughout SetShadowType, GetNotAllBadTD, GetNotAllUnkTD, and __tysan_instrument_mem_inst. This is a no-op on 64-bit targets (where uptr == uint64_t) and fixes shadow corruption on 32-bit targets.
Author
Parents
Loading