IntPTI: Automatic Integer Error Repair with Proper-type Inference
Sponsor
This research was supported in part by NSFC Program (No. 61527812), National Science and Technology Major Project (No. 2016ZX01038101), MIIT IT funds (Research and application of TCN key technologies) of China, and The National Key Technology R&D Program (No. 2015BAG14B01-02).
Published In
ASE 2017 Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering
ISBN
978-1-5386-2684-9
Document Type
Citation
Publication Date
10-30-2017
Abstract
Integer errors in C/C++ are caused by arithmetic operations yielding results which are unrepresentable in certain type. They can lead to serious safety and security issues. Due to the complicated semantics of C/C++ integers, integer errors are widely harbored in real-world programs and it is errorprone to repair them even for experts. An automatic tool is desired to 1) automatically generate fixes which assist developers to correct the buggy code, and 2) provide sufficient hints to help developers review the generated fixes and better understand integer types in C/C++. In this paper, we present a tool IntPTI that implements the desired functionalities for C programs. IntPTI infers appropriate types for variables and expressions to eliminate representation issues, and then utilizes the derived types with fix patterns codified from the successful human-written patches. IntPTI provides a user-friendly web interface which allows users to review and manage the fixes. We evaluate IntPTI on 7 real-world projects and the results show its competitive repair accuracy and its scalability on large code bases. The demo video for IntPTI is available at: https://youtu.be/9Tgd4A_FgZM.
Locate the Document
DOI
10.1109/ASE.2017.8115718
Persistent Identifier
https://archives.pdx.edu/ds/psu/30661
Citation Details
Cheng, X., Zhou, M., Song, X., Gu, M., & Sun, J. IntPTI: Automatic integer error repair with proper-type inference. In 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE) (pp. 996-1001). IEEE.
Description
©2017 IEEE