Optimal Guard Synthesis for Memory Safety
Authors: Thomas Dillig, Isil Dillig and Swarat Chaudhuri
Paper Information
| Title: | Optimal Guard Synthesis for Memory Safety |
| Authors: | Thomas Dillig, Isil Dillig and Swarat Chaudhuri |
| Proceedings: | CAV 2014 LNCS Proceedings |
| Editors: | Armin Biere, Swen Jacobs and Roderick Bloem |
| Keywords: | program synthesis, memory safety, abductive reasoning |
| Abstract: | ABSTRACT. This paper presents a new synthesis-based approach for helping programmers write low-level memory-safe code. Specifically, given a partial program with missing guards, our algorithm synthesizes concrete predicates to plug in for the missing guards such that all buffer accesses in the program are guaranteed to be memory safe. Furthermore, our algorithm gives a guarantee of optimality in that the synthesized guards are provably the simplest (that is, with the fewest number of variables) and weakest among guards that guarantee memory safety. Our approach is fully automatic and does not require any hints, such as templates, from the user. We have implemented our proposed algorithm in a prototype synthesis tool for C programs. Our experimental evaluation on a set of real-world C programs shows that the proposed approach is able to successfully synthesize guards that closely match hand-written programmer code. |
| Pages: | 17 |
| Talk: | Jul 21 11:45 |
| Paper: | ![]() |
