DocumentCode
3722973
Title
Crust: A Bounded Verifier for Rust (N)
Author
John Toman;Stuart Pernsteiner;Emina Torlak
Author_Institution
Dept. of Comput. Sci. &
fYear
2015
Firstpage
75
Lastpage
80
Abstract
Rust is a modern systems language that provides guaranteed memory safety through static analysis. However, Rust includes an escape hatch in the form of "unsafe code," which the compiler assumes to be memory safe and to preserve crucial pointer aliasing invariants. Unsafe code appears in many data structure implementations and other essential libraries, and bugs in this code can lead to memory safety violations in parts of the program that the compiler otherwise proved safe. We present CRUST, a tool combining exhaustive test generation and bounded model checking to detect memory safety errors, as well as violations of Rust´s pointer aliasing invariants within unsafe library code. CRUST requires no programmer annotations, only an indication of the modules to check. We evaluate CRUSTon data structures from the Rust standard library. It detects memory safety bugs that arose during the library´s development and remained undetected for several months.
Keywords
"Arrays","Libraries","Safety","Computer bugs","Indexes","Standards"
Publisher
ieee
Conference_Titel
Automated Software Engineering (ASE), 2015 30th IEEE/ACM International Conference on
Type
conf
DOI
10.1109/ASE.2015.77
Filename
7371997
Link To Document