Sound One-Phase Shape Analysis with Biabduction

07/12/2023
by   Florian Sextl, et al.
0

Biabduction-based shape analysis is a static analysis technique that can find bugs and ensure memory safety in the presence of complex, linked data structures. As such, this analysis has proven to be scalable and is implemented in state-of-the-art industrial strength analyzers. However, standard biabduction-based shape analysis requires two analysis phases to guarantee that all computed function contracts are sound. We introduce two novel techniques shared learning and shape extrapolation which tackle the soundness problems of biabduction-based shape analysis and allow for a sound one-phase analysis in many real-world programs. We formally prove that both techniques guarantee soundness and verify their effectiveness in a case study based on a prototype implementation.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/02/2019

2LS: Heap Analysis and Memory Safety (Competition Contribution)

2LS is a framework for analysis of sequential C programs that can verify...
research
04/25/2018

Shape Neutral Analysis of Graph-based Data-structures

Malformed data-structures can lead to runtime errors such as arbitrary m...
research
05/05/2022

Low-Level Bi-Abduction

The paper proposes a new static analysis designed to handle open program...
research
03/29/2021

SafeDrop: Detecting Memory Deallocation Bugs of Rust Programs via Static Data-Flow Analysis

Rust is an emerging programming language that aims to prevent memory-saf...
research
05/17/2019

Targeted Greybox Fuzzing with Static Lookahead Analysis

Automatic test generation typically aims to generate inputs that explore...
research
03/16/2022

Gradual Tensor Shape Checking

Tensor shape mismatch is a common source of bugs in deep learning progra...
research
06/18/2020

Bi-Abduction for Shapes with Ordered Data

Shape analysis is of great importance for the verification of the correc...

Please sign up or login with your details

Forgot password? Click here to reset