Fri 25 Oct 2024 11:00 - 11:20 at San Gabriel - Memory Management and Analysis 1 Chair(s): Amal Ahmed

We tackle the problem of checking non-proof-carrying code, i.e. automatically proving type-safety (implying in our type system spatial memory safety) of low-level C code or of machine code resulting from its compilation without modification. This requires a precise static analysis that we obtain by having a type system which (i) is expressive enough to encode common low-level idioms, like pointer arithmetic, discriminating variants by bit-stealing on aligned pointers, storing the size and the base address of a buffer in distinct parts of the memory, or records with flexible array members, among others; and (ii) can be embedded in an abstract interpreter. We propose a new type system that meets these criteria. The distinguishing feature of this type system is a nominal organization of memory regions, which (i) allows nesting, concatenation, union, and sharing parameters between regions; (ii) induces a lattice over sets of addresses from the type definitions; and (iii) permits updates to memory cells that change their type without requiring one to control aliasing. We provide a semantic model for our type system, which enables us to derive sound type checking rules by abstract interpretation, then to integrate these rules as an abstract domain in a standard flow-sensitive static analysis. Our experiments on various challenging benchmark show that semantic type-checking using this expressive type system generally succeeds in proving type safety and spatial memory safety of C and machine code programs without modification, using only user-provided function prototypes.

Fri 25 Oct

Displayed time zone: Pacific Time (US & Canada) change

11:00 - 12:20
Memory Management and Analysis 1OOPSLA 2024 at San Gabriel
Chair(s): Amal Ahmed Northeastern University, USA
11:00
20m
Talk
A Dependent Nominal Physical Type System for Static Analysis of Memory in Low Level Code
OOPSLA 2024
Julien Simonnet CEA LIST, Matthieu Lemerre Université Paris-Saclay - CEA LIST, Mihaela Sighireanu University Paris-Saclay, ENS Paris-Saclay, CNRS, LMF
DOI
11:20
20m
Talk
Modeling Dynamic (De)Allocations of Local Memory for Translation Validation
OOPSLA 2024
Abhishek Rose IIT Delhi, Sorav Bansal IIT Delhi and CompilerAI Labs
DOI
11:40
20m
Talk
Mark--Scavenge: Waiting for Trash to Take Itself Out
OOPSLA 2024
Jonas Norlinder Uppsala University, Erik Österlund Oracle, David Black-Schaffer Uppsala University, Tobias Wrigstad Uppsala University
DOI
12:00
20m
Talk
Iris-MSWasm: elucidating and mechanising the security invariants of Memory-Safe WebAssembly
OOPSLA 2024
Maxime Legoupil Aarhus University, June Rousseau Aarhus University, Aina Linn Georges Max Planck Institute for Software Systems (MPI-SWS), Jean Pichon-Pharabod Aarhus University, Lars Birkedal Aarhus University
DOI