Fat Pointers for Temporal Memory Safety of C
summary
Extends Checked C with four new fat pointers that store a key and an offset and enforces temporal safety via dynamic key-lock checks; implements data-marshalling API for legacy library calls and open-sources the compiler and toolchain. Evaluation on SPEC and real apps shows 29% overhead on a pointer‑heavy benchmark versus 92% for a disjoint‑metadata design (mcf: 64% vs 175%), while shared-array marshalling peaks ~300 KB and required manual fixes are few.
AI-written summary · about
chapters (8)
- 0:00Temporal memory safety intro
- 1:28Dynamic key-lock concept
- 3:36Fat pointers design & Check C
- 6:49Legacy library compatibility
- 8:15Manual impact & performance
- 9:39Evaluation & benchmarks
- 12:47Study results & conclusion
- 13:50Q&A
related talks
24mMemory-safe interoperation between safe and unsafe languages
01h 01mSmarter Cpp Atomic Smart Pointers - Efficient Concurrent Memory Management
01h 26mA Path to Practically Safe C++
31mMemory Tagging and how it improves C/C++ memory safety
01h 02mLock-free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!
15mTAILCHECK: A Lightweight Heap Overflow Detection Mechanism with Page Protection and...
01h 03mLifetime Safety in C++: Past, Present and Future
01h 12mEnhancing Spatial Safety: Better Array-bounds Checking in C (and Linux)
