Checked C: Making C Safe by Extension
- David Tarditi ,
- Archibald Samuel Elliott ,
- Andrew Ruef ,
- Michael Hicks
IEEE Cybersecurity Development Conference 2018 (SecDev) |
Published by IEEE
This paper presents Checked C, an extension to C designed to support spatial safety, implemented in Clang and LLVM. Checked C’s design is distinguished by its focus on backward-compatibility, incremental conversion, developer control, and enabling highly performant code. Like past approaches to a safer C, Checked C employs a form of checked pointer whose accesses can be statically or dynamically verified. Performance evaluation on a set of standard benchmark programs shows overheads to be relatively low. More interestingly, Checked C introduces the notions of a checked region and bounds-safe interfaces.