Program Analysis Using Symbolic Ranges



Sriram Sankaranarayanan , Franjo Ivancic, and Aarti Gupta
Interval analysis seeks static lower and upper bounds on the values of program variables. These bounds are useful, especially for inferring invariants to prove buffer overflow checks. In practice, however, intervals by themselves are inadequate as invariants due to the lack of relational information among the variables.

In this paper, we present a technique for deriving symbolic bounds on the variable values. We study a restricted class of polyhedra whose constraints are stratified with respect to some variable ordering provided by the user, or chosen heuristically. We define a notion of normalization for such constraints and demonstrate polynomial time domain operations on the resulting domain of symbolic range constraints. The abstract domain is intended to complement widely used domains such as intervals and octagons for use in buffer overflow analysis. Finally, we study the impact of our analysis on commercial software using an overflow analyzer for the C language.



ps     pdf
Static Analysis Symposium (SAS 2007), volume 4634 of Lecture Notes in Computer Science, pp. 366-383, Springer-Verlag.
Copyright (C) Springer-Verlag. Copy has been made available online for personal use only. Do not redistribute without permission.


Sriram Sankaranarayanan