TY - GEN
T1 - Finding resource-release omission faults in Linux
AU - Saha, Suman
AU - Lawall, Julia
AU - Muller, Gilles
PY - 2011
Y1 - 2011
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=80955122922&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=80955122922&partnerID=8YFLogxK
U2 - 10.1145/2039239.2039241
DO - 10.1145/2039239.2039241
M3 - Conference contribution
AN - SCOPUS:80955122922
SN - 9781450309790
T3 - 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
BT - 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
T2 - 6th Workshop on Programming Languages and Operating Systems, PLOS 2011, Held in Conjunction with the 23rd ACM Symposium on Operating Systems Principles, SOSP 2011
Y2 - 23 October 2011 through 23 October 2011
ER -