A Hybrid Approach for Safe Memory Management in C
Source: Concordia University
In this paper, the authors present a novel approach that establishes a synergy between static and dynamic analyzes for detecting memory errors in C code. They extend the standard C type system with effect, region, and host annotations that are relevant to memory management. They define static memory checks to detect memory errors using these annotations. The statically undecidable checks are delegated to dynamic code instrumentation to secure program executions. The static analysis guides its dynamic counterpart by locating instrumentation points and their execution paths. Their dynamic analysis instruments programs with in-lined monitors that observe program executions and ensure safe-fail when encountering memory errors.