SAVER: Scalable, precise, and safe memory-error repair

Seongjoon Hong, Junhee Lee, Jeongsoo Lee, Hakjoo Oh

Research output: Chapter in Book/Report/Conference proceedingConference contribution

2 Citations (Scopus)

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 languageEnglish
Title of host publicationProceedings - 2020 ACM/IEEE 42nd International Conference on Software Engineering, ICSE 2020
PublisherIEEE Computer Society
Pages271-283
Number of pages13
ISBN (Electronic)9781450371216
DOIs
Publication statusPublished - 2020 Jun 27
Event42nd ACM/IEEE International Conference on Software Engineering, ICSE 2020 - Virtual, Online, Korea, Republic of
Duration: 2020 Jun 272020 Jul 19

Publication series

NameProceedings - International Conference on Software Engineering
ISSN (Print)0270-5257

Conference

Conference42nd ACM/IEEE International Conference on Software Engineering, ICSE 2020
CountryKorea, Republic of
CityVirtual, Online
Period20/6/2720/7/19

Keywords

  • Debugging
  • Memory errors
  • Program analysis
  • Program repair

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'SAVER: Scalable, precise, and safe memory-error repair'. Together they form a unique fingerprint.

Cite this