{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,8]],"date-time":"2026-05-08T21:36:43Z","timestamp":1778276203168,"version":"3.51.4"},"reference-count":10,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2012,1,11]],"date-time":"2012-01-11T00:00:00Z","timestamp":1326240000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2012,1,11]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/2094091.2094094","type":"journal-article","created":{"date-parts":[[2012,1,17]],"date-time":"2012-01-17T17:21:44Z","timestamp":1326820904000},"page":"5-9","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Finding resource-release omission faults in Linux"],"prefix":"10.1145","volume":"45","author":[{"given":"Suman","family":"Saha","sequence":"first","affiliation":[{"name":"LIP6-Regal"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Julia","family":"Lawall","sequence":"additional","affiliation":[{"name":"DIKU, University of Copenhagen"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gilles","family":"Muller","sequence":"additional","affiliation":[{"name":"INRIA\/LIP6-Regal"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2012,1,11]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1646353.1646374"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/502034.502041"},{"key":"e_1_2_1_3_1","first-page":"161","volume-title":"OSDI","author":"Kremenek T.","year":"2006"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2009.5270354"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-00768-2_26"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1081706.1081755"},{"key":"e_1_2_1_7_1","unstructured":"Linux. Linux-next gitweb 2011. http:\/\/git.kernel.org\/?p=linux\/kernel\/git\/next\/linux-next.git;a=summary.  Linux. Linux-next gitweb 2011. http:\/\/git.kernel.org\/?p=linux\/kernel\/git\/next\/linux-next.git;a=summary."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1352592.1352618"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2007.63"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-31980-1_30"}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2094091.2094094","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2094091.2094094","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T09:48:41Z","timestamp":1750240121000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2094091.2094094"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012,1,11]]},"references-count":10,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2012,1,11]]}},"alternative-id":["10.1145\/2094091.2094094"],"URL":"https:\/\/doi.org\/10.1145\/2094091.2094094","relation":{},"ISSN":["0163-5980"],"issn-type":[{"value":"0163-5980","type":"print"}],"subject":[],"published":{"date-parts":[[2012,1,11]]},"assertion":[{"value":"2012-01-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}