Inference and enforcement of data structure consistency specifications

Brian Demsky, Michael D. Ernst, Philip J. Guo, Stephen McCamant, Jeff H. Perkins, Martin Rinard

Research output: Chapter in Book/Report/Conference proceedingConference contribution

78 Scopus citations

Abstract

Corrupt data structures are an important cause of unacceptable program execution. Data structure repair (which eliminates inconsistencies by updating corrupt data structures to conform to consistency constraints) promises to enable many programs to continue to execute acceptably in the face of otherwise fatal data structure corruption errors. A key issue is obtaining an accurate and comprehensive data structure consistency specification. We present a new technique for obtaining data structure consistency specifications for data structure repair. Instead of requiring the developer to manually generate such specifications, our approach automatically generates candidate data structure consistency properties using the Daikon invariant detection tool. The developer then reviews these properties, potentially rejecting or generalizing overly specific properties to obtain a specification suitable for automatic enforcement via data structure repair. We have implemented this approach and applied it to three sizable benchmark programs: CTAS (an air-traffic control system), BIND (a widely-used Internet name server) and Freeciv (an interactive game). Our results indicate that (1) automatic constraint generation produces constraints that enable programs to execute successfully through data structure consistency errors, (2) compared to manual specification, automatic generation can produce more comprehensive sets of constraints that cover a larger range of data structure consistency properties, and (3) reviewing the properties is relatively straightforward and requires substantially less programmer effort than manual generation, primarily because it reduces the need to examine the program text to understand its operation and extract the relevant consistency constraints. Moreover, when evaluated by a hostile third party "Red Team" contracted to evaluate the effectiveness of the technique, our data structure inference and enforcement tools successfully prevented several otherwise fatal attacks.

Original languageEnglish (US)
Title of host publicationProceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006
Pages233-243
Number of pages11
DOIs
StatePublished - Dec 1 2006
Event2006 International Symposium on Software Testing and Analysis, ISSTA 2006 - Portland, ME, United States
Duration: Jul 17 2006Jul 20 2006

Publication series

NameProceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006
Volume2006

Other

Other2006 International Symposium on Software Testing and Analysis, ISSTA 2006
CountryUnited States
CityPortland, ME
Period7/17/067/20/06

Keywords

  • Data structure repair
  • Dynamic invariant detection

Fingerprint Dive into the research topics of 'Inference and enforcement of data structure consistency specifications'. Together they form a unique fingerprint.

  • Cite this

    Demsky, B., Ernst, M. D., Guo, P. J., McCamant, S., Perkins, J. H., & Rinard, M. (2006). Inference and enforcement of data structure consistency specifications. In Proceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006 (pp. 233-243). (Proceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA 2006; Vol. 2006). https://doi.org/10.1145/1146238.1146266