Skip to content

Gillian, Part II: Real-World Verification for JavaScript and C

Published at CAV 2021
DOI: 10.1007/978-3-030-81688-9_38
Artifact: 10.5281/zenodo.4838115

Authors

  • Petar Maksimović
  • Sacha-Élie Ayoun
  • José Fragoso Santos
  • Philippa Gardner

Abstract

We introduce verification based on separation logic to Gillian, a multi-language platform for the development of symbolic analysis tools which is parametric on the memory model of the target language. Our work develops a methodology for constructing compositional memory models for Gillian, leading to a unified presentation of the JavaScript and C memory models. We verify the JavaScript and C implementations of the AWS Encryption SDK message header deserialisation module, specifically designing common abstractions used for both verification tasks, and find two bugs in the JavaScript and three bugs in the C implementation.