A. Simon and A. King. Analyzing String Buffers in C. In H. Kirchner and C. Ringeissen, editors, Algebraic Methodology and Software Technology, volume 2422 of LNCS, pages 365--379, Reunion Island, France, September 2002. Springer.

A buffer overrun occurs in a C program when input is read into a buffer whose length exceeds that of the buffer. Overruns often lead to crashes and are a widespread form of security vulnerability. This paper describes an analysis for detecting overruns before deployment which is conservative in the sense that it locates every possible buffer overrun. The paper details the subtle relationship between overrun analysis and pointer analysis and explains how buffers can be modeled with a linear number of variables. As far as we know, the paper gives the first formal account of how this software and security problem can be tackled with abstract interpretation, setting it on a firm, mathematical basis.

Download: PDF Reference: Bibtex The original publication is available at www.springerlink.com