Catamaran: Low-Overhead Memory Safety Enforcement Via Parallel Acceleration

Yiyu Zhang,Tianyi Liu,Zewen Sun,Zhe Chen,Xuandong Li,Zhiqiang Zuo
DOI: https://doi.org/10.1145/3597926.3598098
2023-01-01
Abstract:Memory safety issues are the intrinsic diseases of C/C++ programs. Dynamic memory safety enforcement as the dominant approach has an advantage in high effectiveness, yet suffers from prohibitively high runtime overhead. Existing attempts to reduce the overhead are either labor-intensive, tightly dependent on specific hardware/compiler support, or poorly effective. In this paper, we propose a novel technique to reduce time overhead by executing the dynamic checking code in parallel. We leverage static dependence analysis and dynamic profit analysis to identify and dispatch the potential code to separate threads running simultaneously. We implemented a tool called Catamaran and evaluated it over a rich set of benchmarks. The experimental results validate that Catamaran is able to significantly reduce the runtime overhead of the existing dynamic tools, without sacrificing capability of memory safety enforcement.
What problem does this paper attempt to address?