@inproceedings{f8e46c48e9ff45f486ecf361e377f0d2,
title = "MemFix: Static analysis-based repair of memory deallocation errors for C",
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.",
keywords = "Debugging, Program Analysis, Program Repair",
author = "Junhee Lee and Seongjoon Hong and Hakjoo Oh",
year = "2018",
month = oct,
day = "26",
doi = "10.1145/3236024.3236079",
language = "English",
series = "ESEC/FSE 2018 - Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering",
publisher = "Association for Computing Machinery, Inc",
pages = "95--106",
editor = "Alessandro Garci and Pasareanu, {Corina S.} and Leavens, {Gary T.}",
booktitle = "ESEC/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",
note = "26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018 ; Conference date: 04-11-2018 Through 09-11-2018",
}