Scalable Shape Analysis for Systems Code

  • Hongseok Yang ,
  • Oukseh Lee ,
  • Josh Berdine ,
  • Cristiano Calcagno ,
  • Byron Cook ,
  • Dino Distefano ,
  • Peter O'Hearn

Computer Aided Verification, 20th International Conference, CAV 2008, Princeton, NJ, USA |

Published by Springer Verlag

Pointer safety faults in device drivers are one of the leading causes of crashes in operating systems code. In principle, shape analysis tools can be used to prove the absence of this type of error. In practice, however, shape analysis is not used due to the unacceptable mixture of scalability and precision provided by existing tools. In this paper we report on a new join operation |†| for the separation domain which aggressively abstracts information for scalability yet does not lead to false error reports. |†| is a critical piece of a new shape analysis tool that provides an acceptable mixture of scalability and precision for industrial application. Experiments on whole Windows and Linux device drivers (firewire, pcidriver, cdrom, md, etc.) represent the first working application of shape analysis to verification of whole industrial programs.