Verifying pointer safety for programs with unknown calls

  • Authors:
  • Chenguang Luo;Florin Craciun;Shengchao Qin;Guanhua He;Wei-Ngan Chin

  • Affiliations:
  • Durham University, Durham DH1 3LE, UK;Durham University, Durham DH1 3LE, UK;Durham University, Durham DH1 3LE, UK;Durham University, Durham DH1 3LE, UK;National University of Singapore, Singapore

  • Venue:
  • Journal of Symbolic Computation
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

We study the automated verification of pointer safety for heap-manipulating imperative programs with unknown procedure calls. Given a Hoare-style partial correctness specification S={Pre}C{Post} in separation logic, where the program C contains calls to some unknown procedure U, we infer a specification S"U for the unknown procedure U from the calling contexts. We show that the problem of verifying the program C against the specification S can be safely reduced to the problem of proving that the procedure U (once its code is available) meets the derived specification S"U. The expected specification S"U for the unknown procedure U is automatically calculated using an abduction-based shape analysis. We have also implemented a prototype system to validate the viability of our approach. Preliminary results show that the specifications derived by our tool fully capture the behaviors of the unknown code in many cases.