Carraybound: static array bounds checking in C programs based on taint analysis

Abstract

C programming language never performs automatic bounds checking in order to speed up execution. But bounds checking is absolutely necessary in any program. Because if a variable is out-of-bounds, some serious errors may occur during execution, such as endless loop or buffer overflows. When there are arrays used in a program, the index of an array must be within the boundary of the array. But programmers always miss the array bounds checking or do not perform a correct array bounds checking. In this paper, we perform static analysis based on taint analysis and data flow analysis to detect which arrays do not have correct array bounds checking in the program. And we implement an automatic static tool, Carraybound. And the experimental results show that Carraybound can work effectively and efficiently.

DOI: 10.1145/2993717.2993724

6 Figures and Tables

Cite this paper

@inproceedings{Gao2016CarrayboundSA, title={Carraybound: static array bounds checking in C programs based on taint analysis}, author={Fengjuan Gao and Tianjiao Chen and Yu Wang and Lingyun Situ and Linzhang Wang and Xuandong Li}, booktitle={Internetware}, year={2016} }