WYSIWYB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code

Julia Lawall, Julia Lawall, Nicolas Palix, Rene Rydhof Hansen, Gilles Muller

Research output: Contribution to book/anthology/report/conference proceedingArticle in proceedingResearchpeer-review

Abstract

Although a number of approaches to finding bugs in systems code have been proposed, bugs still remain to be found. Current
approaches have emphasized scalability more than usability, and as a result it is difficult to relate the results to particular
patterns found in the source code and to control the tools to be able to find specific kinds of bugs.
In this paper, we propose a declarative approach based on a control-flow based program search engine. Our approach is
WYSIWIB (What You See Is Where It Bugs), since the programmer is able to express specifications for protocol and bug
finding using a syntax that is close to that of ordinary C code. Search specifications, called semantic matches, can be easily
tailored so as to either eliminate false positives or catch more potential bugs. We introduce our approach by describing three
case studies which have allowed us to find 395 bugs.
Original languageEnglish
Title of host publicationProceedings of the IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'09)
Number of pages10
PublisherIEEE Computer Society Press
Publication date2009
Pages43-52
ISBN (Print)978-1-4244-4422-9
Publication statusPublished - 2009
EventConference on Dependable Systems and Networks (DSN'09) - Estoril, Portugal
Duration: 29 Jun 20092 Jul 2009
Conference number: 39

Conference

ConferenceConference on Dependable Systems and Networks (DSN'09)
Number39
CountryPortugal
CityEstoril
Period29/06/200902/07/2009

    Fingerprint

Cite this

Lawall, J., Lawall, J., Palix, N., Hansen, R. R., & Muller, G. (2009). WYSIWYB: A Declarative Approach to Finding API Protocols and Bugs in Linux Code. In Proceedings of the IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'09) (pp. 43-52). IEEE Computer Society Press.