Runtime Verification of C Memory Safety

Download Now Free registration required

Executive Summary

C is the most widely used imperative system's implementation language. While C provides types and high-level abstractions, its design goal has been to provide highest performance which often requires low-level access to memory. As a consequence C supports arbitrary pointer arithmetic, casting, and explicit allocation and deallocation. These operations are difficult to use, resulting in programs that often have software bugs like buffer overflows and dangling pointers that cause security vulnerabilities. The authors say a C program is memory safe, if at runtime it never goes wrong with such a memory access error.

  • Format: PDF
  • Size: 279.23 KB