TitleLightweight verification of array indexing
Publication TypeConference Paper
Year of Publication2018
AuthorsKellogg M, Dort V, Millstein S, Ernst MD
Conference NameISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis
Pagination3-14
Date or Month PublishedJuly
Conference LocationAmsterdam, Netherlands
AbstractIn languages like C, out-of-bounds array accesses lead to security vulnerabilities and crashes. Even in managed languages like Java, which check array bounds at run time, out-of-bounds accesses cause exceptions that terminate the program. \par We present a lightweight type system that certifies, at compile time, that array accesses in the program are in-bounds. The type system consists of several cooperating hierarchies of dependent types, specialized to the domain of array bounds-checking. Programmers write type annotations at procedure boundaries, allowing modular verification at a cost that scales linearly with program size. \par We implemented our type system for Java in a tool called the Index Checker. We evaluated the Index Checker on over 100,000 lines of open-source code and discovered array access errors even in well-tested, industrial projects such as Google Guava.
Downloadshttps://checkerframework.org/ implementation
Citation KeyKelloggDME2018