当前位置: X-MOL 学术IEEE Trans. Dependable Secure Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automatic Integer Error Repair by Proper-Type Inference
IEEE Transactions on Dependable and Secure Computing ( IF 7.0 ) Pub Date : 2019-04-30 , DOI: 10.1109/tdsc.2019.2913862
Xi Cheng , Min Zhou , Xiaoyu Song , Ming Gu , Jiaguang Sun

C language plays a key role in system programming and applications. Integer error is a common yet important C program defect because arithmetic operations may produce unrepresentable values in certain integer types. Integer error is one of the major sources of software failures and vulnerabilities. Due to the complex semantics of C integers, manually repairing integer errors is prone to introducing additional errors even for experienced programmers. This paper presents an approach to automatically generate fixes for integer errors. Our approach infers, for each expression, a type that is capable of representing its possible values, and utilizes inferred types as program fixes based on common fix patterns codified from real world. We have developed our system IntPTI which is evaluated on the largest public benchmark of integer errors and 7 widely-used open-source projects. The evaluation results demonstrate the superior performance of IntPTI in terms of accuracy, scalability, runtime overhead and robustness of fixes. In addition, IntPTI is applied on the embedded software of a realistic train control system. It succeeds in both detecting 67 new integer errors and generating 101 fixes confirmed by developers. The study substantiates the feasibility and effectiveness of the proposed methodology.

中文翻译:

通过正确类型推断自动修复整数错误

C语言在系统编程和应用程序中起着关键作用。整数错误是常见但重要的C程序缺陷,因为算术运算可能会在某些整数类型中产生无法表示的值。整数错误是软件故障和漏洞的主要来源之一。由于C整数的复杂语义,即使对于有经验的程序员,手动修复整数错误也容易引入其他错误。本文提出了一种自动生成整数错误修复程序的方法。我们的方法为每个表达式推断一个能够表示其可能值的类型,并根据从现实世界中得到的通用修正模式,将推断的类型用作程序修正。我们已经开发了系统IntPTI根据最大的整数错误基准测试和7个广泛使用的开源项目进行了评估。评估结果证明了其卓越的性能。IntPTI在准确性,可伸缩性,运行时开销和修补程序的健壮性方面。此外,IntPTI用于实际的火车控制系统的嵌入式软件。它可以成功检测出67个新的整数错误并生成101个开发人员确认的修复程序。该研究证实了所提出方法的可行性和有效性。
更新日期:2019-04-30
down
wechat
bug