Checked C: Making C Safe By Extension
Archibald Samuel Elliott, Andrew Ruef, Michael Hicks, David Tarditi
September 2018 • Paper • IEEE Cybersecurity Development (SecDev)
Abstract
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.