MemFix: Static analysis-based repair of memory deallocation errors for C

Junhee Lee, Seongjoon Hong, Hakjoo Oh

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

    41 Citations (Scopus)

    Abstract

    We present MemFix, an automated technique for fixing memory deallocation errors in C programs. MemFix aims to fix memory-leak, double-free, and use-after-free errors, which occur when developers fail to properly deallocate memory objects. MemFix attempts to fix these errors by finding a set of free-statements that correctly deallocate all allocated objects without causing double-frees and use-after-frees. The key insight behind MemFix is that finding such a set of deallocation statements corresponds to solving an exact cover problem derived from a variant of typestate static analysis. We formally present the technique and experimentally show that MemFix is able to fix real errors found in open-source programs. Because MemFix is based on a sound static analysis, the generated patches guarantee to fix the original error without introducing new errors.

    Original languageEnglish
    Title of host publicationESEC/FSE 2018 - Proceedings of the 2018 26th ACM Joint Meeting on European So ftware Engineering Conference and Symposium on the Foundations of So ftware Engineering
    EditorsAlessandro Garci, Corina S. Pasareanu, Gary T. Leavens
    PublisherAssociation for Computing Machinery, Inc
    Pages95-106
    Number of pages12
    ISBN (Electronic)9781450355735
    DOIs
    Publication statusPublished - 2018 Oct 26
    Event26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018 - Lake Buena Vista, United States
    Duration: 2018 Nov 42018 Nov 9

    Publication series

    NameESEC/FSE 2018 - Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

    Conference

    Conference26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018
    Country/TerritoryUnited States
    CityLake Buena Vista
    Period18/11/418/11/9

    Keywords

    • Debugging
    • Program Analysis
    • Program Repair

    ASJC Scopus subject areas

    • Software
    • Artificial Intelligence

    Fingerprint

    Dive into the research topics of 'MemFix: Static analysis-based repair of memory deallocation errors for C'. Together they form a unique fingerprint.

    Cite this