Automatic inference of access permissions

  • Authors:
  • Pietro Ferrara;Peter Müller

  • Affiliations:
  • ETH Zurich, Switzerland;ETH Zurich, Switzerland

  • Venue:
  • VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Access permissions are used in several program verification approaches such as those based on separation logic or implicit dynamic frames to simplify framing and to provide a basis for reasoning about concurrent code. However, access permissions increase the annotation overhead because programmers need to specify for each program component which permissions it requires or provides. We present a new static analysis based on abstract interpretation to infer access permissions automatically. Our analysis computes a symbolic approximation of the permissions owned for each heap location at each program point and infers a constraint system over these symbolic permissions that reflects the permission requirements of each heap access in the program. The constraint system is solved using linear programming. Our analysis is parametric in the permission system and supports, for instance, fractional and counting permissions. Experimental results demonstrate that our analysis is fast and is able to infer almost all access permissions for our case studies.