Finding resource-release omission faults in Linux

Suman Saha, Julia Lawall, Gilles Muller

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

4 Scopus citations

Abstract

The management of the releasing of allocated resources is a continual problem in ensuring the robustness of systems code. Missing resource-releasing operations lead to memory leaks and deadlocks. A number of approaches have been proposed to detect such problems, but they often have a high rate of false positives, or focus only on commonly used functions. In this paper we observe that resource-releasing operations are often found in error-handling code, and that the choice of resource-releasing operation may depend on the context in which it is to be used. We propose an approach to finding resource-release omission faults in C code that takes into account these issues. We use our approach to find over 100 faults in the drivers directory of Linux 2.6.34, with a false positive rate of only 16%, well below the 30% that has been found to be acceptable to developers.

Original languageEnglish (US)
Title of host publicationProceedings of the 6th Workshop on Programming Languages and Operating Systems, PLOS 2011 - In Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011
DOIs
StatePublished - Nov 16 2011
Event6th Workshop on Programming Languages and Operating Systems, PLOS 2011, Held in Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011 - Cascais, Portugal
Duration: Oct 23 2011Oct 23 2011

Publication series

NameProceedings of the 6th Workshop on Programming Languages and Operating Systems, PLOS 2011 - In Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011

Conference

Conference6th Workshop on Programming Languages and Operating Systems, PLOS 2011, Held in Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011
CountryPortugal
CityCascais
Period10/23/1110/23/11

    Fingerprint

All Science Journal Classification (ASJC) codes

  • Computational Theory and Mathematics
  • Software

Cite this

Saha, S., Lawall, J., & Muller, G. (2011). Finding resource-release omission faults in Linux. In Proceedings of the 6th Workshop on Programming Languages and Operating Systems, PLOS 2011 - In Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011 [1] (Proceedings of the 6th Workshop on Programming Languages and Operating Systems, PLOS 2011 - In Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011). https://doi.org/10.1145/2039239.2039241