Skip to main content

Program Analysis for Overlaid Data Structures

Oukseh Lee‚ Hongseok Yang and Rasmus Petersen

Abstract

We call a data structure overlaid, if a node in the structure includes links for multiple data structures and these links are intended to be used at the same time. In this paper, we present a static program analysis for overlaid data structures. Our analysis implements two main ideas. The first is to run multiple sub-analyses that track information about non-overlaid data structures, such as lists. Each sub-analysis infers shape properties of only one component of an overlaid data structure, but the results of these sub-analyses are later combined to derive the desired safety properties about the whole overlaid data structure. The second idea is to control the communication among the sub-analyses using ghost states and ghost instructions. The purpose of this control is to achieve a high level of efficiency by allowing only necessary information to be transferred among sub-analyses and at as few program points as possible. Our analysis has been successfully applied to prove the memory safety of the Linux deadline IO scheduler and AFS server.

Address
Utah‚ USA
Book Title
Proceedings of the 23rd International Conference on Computer Aided Verification
ISBN
978−3−642−22109−5
Month
July
Pages
592–608
Publisher
Springer−Verlag
Series
Lecture Notes in Computer Science
Volume
6806
Year
2011