Finding resource-release omission faults in Linux

  • Authors:
  • Suman Saha;Julia Lawall;Gilles Muller

  • Affiliations:
  • LIP6-Regal;DIKU, University of Copenhagen;INRIA/LIP6-Regal

  • Venue:
  • PLOS '11 Proceedings of the 6th Workshop on Programming Languages and Operating Systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

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.