An efficient and backwards-compatible transformation to ensure memory safety of C programs

  • Authors:
  • Wei Xu;Daniel C. DuVarney;R. Sekar

  • Affiliations:
  • Stony Brook University;Stony Brook University;Stony Brook University

  • Venue:
  • Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Memory-related errors, such as buffer overflows and dangling pointers, remain one of the principal reasons for failures of C programs. As a result, a number of recent research efforts have focused on the problem of dynamic detection of memory errors in C programs. However, existing approaches suffer from one or more of the following problems: inability to detect all memory errors (e.g., Purify), requiring non-trivial modifications to existing C programs (e.g., Cyclone), changing the memory management model of C to use garbage collection (e.g., CCured), and excessive performance overheads. In this paper, we present a new approach that addresses these problems. Our approach operates via source code transformation and combines efficient data-structures with simple, localized optimizations to obtain good performance.