WG211/M10Lawall
Finding Resource-Release Omission Faults in Linux by Julia Lawall (Joint work with Suman Saha and Gilles Muller, accepted at PLOS 2011)
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 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.