kirancodes.me
To Proof Maintenance & Beyond!

Detecting Error-Handling Bugs without Error Specification Input

Zhouyang Jia, Shanshan Li, Tingting Yu, Xiangke Liao, Ji Wang, Xiaodong Liu, Yunhuai Liu

Abstract

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.

BibTeX
@inproceedings{Jia-al:ASE19,
  author    = {Zhouyang Jia and
               Shanshan Li and
               Tingting Yu and
               Xiangke Liao and
               Ji Wang and
               Xiaodong Liu and
               Yunhuai Liu},
  title     = {Detecting {Error-Handling} Bugs without Error Specification Input},
  booktitle = {ASE},
  pages     = {213--225},
  publisher = {{IEEE}},
  year      = {2019},
}

Related papers