Memory Tagging and how it improves C/C++ memory safety

Kostya Serebryany, Evgenii Stepanov, Aleksey Shlyapnikov, Vlad Tsyrklevich, Dmitry Vyukov
2018
2 references

Abstract

Memory safety in C and C++ remains largely unresolved. A technique usually called "memory tagging" may dramatically improve the situation if implemented in hardware with reasonable overhead. This paper describes two existing implementations of memory tagging: one is the full hardware implementation in SPARC; the other is a partially hardware-assisted compiler-based tool for AArch64. We describe the basic idea, evaluate the two implementations, and explain how they improve memory safety. This paper is intended to initiate a wider discussion of memory tagging and to motivate the CPU and OS vendors to add support for it in the near future.

1 repository
2 references

Code References

llvm/llvm-project
2 files
clang/docs/HardwareAssistedAddressSanitizerDesign.rst
1
L43 For a more detailed discussion of this approach see https://arxiv.org/pdf/1802.09517.pdf
llvm/docs/MemTagSanitizer.rst
1
L99 * `Memory Tagging Whitepaper <https://arxiv.org/pdf/1802.09517.pdf>`_
Link copied to clipboard!