Checked C: Making C Safe by Extension
Title | Checked C: Making C Safe by Extension |
Publication Type | Conference Paper |
Year of Publication | 2018 |
Authors | Elliott, A. S., Ruef, A., Hicks, M., Tarditi, D. |
Conference Name | 2018 IEEE Cybersecurity Development (SecDev) |
ISBN Number | 978-1-5386-7662-2 |
Keywords | backward-compatibility, Benchmark testing, bounds-safe interfaces, C safe, C++ language, checked C's design, checked pointer, checked region, Collaboration, Computer bugs, Cyclones, developer control, highly performant code, Human Behavior, human factors, incremental conversion, Metrics, performance evaluation, policy-based governance, program debugging, programming languages, pubcrawl, resilience, Resiliency, Safe Coding, Safety, security, spatial safety, static analysis, storage management, Tools |
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. |
URL | https://ieeexplore.ieee.org/document/8543387 |
DOI | 10.1109/SecDev.2018.00015 |
Citation Key | elliott_checked_2018 |
- incremental conversion
- tools
- storage management
- static analysis
- spatial safety
- security
- Safety
- Safe Coding
- Resiliency
- resilience
- pubcrawl
- programming languages
- program debugging
- policy-based governance
- performance evaluation
- Metrics
- backward-compatibility
- Human Factors
- Human behavior
- highly performant code
- developer control
- Cyclones
- Computer bugs
- collaboration
- checked region
- checked pointer
- checked C's design
- C++ language
- C safe
- bounds-safe interfaces
- Benchmark testing