Abstract
We present SAVER, a new memory-error repair technique for C programs. Memory errors such as memory leak, double-free, and use-after-free are highly prevalent and fixing them requires significant effort. Automated program repair techniques hold the promise of reducing this burden but the state-of-the-art is still unsatisfactory. In particular, no existing techniques are able to fix those errors in a scalable, precise, and safe way, all of which are required for a truly practical tool. SAVER aims to address these shortcomings. To this end, we propose a method based on a novel representation of the program called object flow graph, which summarizes the program's heap-related behavior using static analysis. We show that fixing memory errors can be formulated as a graph labeling problem over object flow graph and present an efficient algorithm. We evaluated SAVER in combination with Infer, an industrial-strength static bug-finder, and show that 74% of the reported errors can be fixed automatically for a range of open-source C programs.
Original language | English |
---|---|
Title of host publication | Proceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering, ICSE 2020 |
Publisher | IEEE Computer Society |
Pages | 271-283 |
Number of pages | 13 |
ISBN (Electronic) | 9781450371216 |
DOIs | |
Publication status | Published - 2020 Jun 27 |
Event | 42nd ACM/IEEE International Conference on Software Engineering, ICSE 2020 - Virtual, Online, Korea, Republic of Duration: 2020 Jun 27 → 2020 Jul 19 |
Publication series
Name | Proceedings - International Conference on Software Engineering |
---|---|
ISSN (Print) | 0270-5257 |
Conference
Conference | 42nd ACM/IEEE International Conference on Software Engineering, ICSE 2020 |
---|---|
Country/Territory | Korea, Republic of |
City | Virtual, Online |
Period | 20/6/27 → 20/7/19 |
Bibliographical note
Funding Information:This work was supported by Samsung Research, Samsung Electronics Co., Ltd. This work was supported by Samsung Research Funding & Incubation Center of Samsung Electronics under Project Number SRFC-IT1701-09.
Publisher Copyright:
© 2020 Association for Computing Machinery.
Keywords
- Debugging
- Memory errors
- Program analysis
- Program repair
ASJC Scopus subject areas
- Software