Publication | Closed Access
Detecting Error-Handling Bugs without Error Specification Input
14
Citations
32
References
2019
Year
Unknown Venue
Software MaintenanceCorrect Error SpecificationsEngineeringVerificationSoftware EngineeringSoftware AnalysisFormal VerificationReliability EngineeringError-handling BugsSystems EngineeringFuzzingError SpecificationsRuntime VerificationComputer EngineeringComputer ScienceCorrect Error HandlingStatic Program AnalysisAutomated RepairProgram AnalysisSoftware TestingFormal MethodsFault InjectionSystem Software
Most software systems frequently encounter errors when interacting with their environments. When errors occur, error-handling code must execute flawlessly to facilitate system recovery. Implementing correct error handling is repetitive but non-trivial, and developers often inadvertently introduce bugs into error-handling code. Existing tools require correct error specifications to detect error-handling bugs. Manually generating error specifications is error-prone and tedious, while automatically mining error specifications is hard to achieve a satisfying accuracy. In this paper, we propose EH-Miner, a novel and practical tool that can automatically detect error-handling bugs without the need for error specifications. Given a function, EH-Miner mines its error-handling rules when the function is frequently checked by an equivalent condition, and handled by the same action. We applied EH-Miner to 117 applications across 15 software domains. EH-Miner mined error-handling rules with the precision of 91.1% and the recall of 46.9%. We reported 142 bugs to developers, and 106 bugs had been confirmed and fixed at the time of writing. We further applied EH-Miner to Linux kernel, and reported 68 bugs for kernel-4.17, of which 42 had been confirmed or fixed.
| Year | Citations | |
|---|---|---|
Page 1
Page 1