Lab Home | Phone | Search | ||||||||
|
||||||||
In this talk, I will present my work on developing and applying static program analyses to automatically find error-propagation bugs in large software systems. Bugs found in error handlers are among the most pervasive, dangerous, and difficult to detect in software systems. Incorrect error handling is a longstanding problem in many application domains, including systems software and user applications that use the return-code idiom. First, I will give an overview of an interprocedural context- and flow-sensitive analysis that tracks the propagation of error codes. This analysis is formalized using weighted pushdown systems (WPDS). I will describe how the analysis is used to find a variety of error-propagation bugs, such as dropped errors, and misused error-valued pointers. I will present results for numerous real-world Linux file systems such as ext3 and ReiserFS, and Linux device drivers where the analysis have found hundreds of confirmed error-propagation bugs. Last, I will talk about our recent work on database-backed program analysis for scalable error propagation. Host: Curt Canada |