Understanding Memory and Thread Safety Practices and Issues in Real-World Rust Programs
Rust is a young programming language designed for systems software development.
It aims to provide safety guarantees like high-level languages and
performance efficiency like low-level languages.
The core design of Rust is a set of strict safety rules enforced by compile-time checking.
To support more low-level controls,
Rust allows programmers to bypass these compiler checks to write unsafe code.
It is important to understand what safety issues exist in real Rust programs
and how Rust safety mechanisms impact programming practices.
We performed the first empirical study of Rust
by close, manual inspection of 850 unsafe code usages and 170 bugs in
five open-source Rust projects,
five widely-used Rust libraries,
two online security databases,
and the Rust standard library.
Our study answers three important questions:
how and why do programmers write unsafe code,
what memory-safety issues real Rust programs have,
and what concurrency bugs Rust programmers make.
Our study reveals interesting real-world Rust program behaviors and new issues Rust programmers make.
Based on our study results, we propose several directions of building Rust bug detectors
and built two static bug detectors, both of which revealed previously unknown bugs.
Wed 17 JunDisplayed time zone: Pacific Time (US & Canada) change
14:20 - 15:40 | |||
14:20 20mTalk | Validating SMT Solvers via Semantic Fusion PLDI Research Papers Dominik Winterer ETH Zurich, Switzerland, Chengyu Zhang East China Normal University, Zhendong Su ETH Zurich, Switzerland | ||
14:40 20mTalk | Debugging and Detecting Numerical Errors in Computation with Posits PLDI Research Papers Sangeeta Chowdhary Rutgers University, USA, Jay P. Lim Rutgers University, USA, Santosh Nagarakatte Rutgers University, USA | ||
15:00 20mTalk | SmartTrack: Efficient Predictive Race Detection PLDI Research Papers Jake Roemer Ohio State University, USA, Kaan Genç Ohio State University, USA, Michael D. Bond Ohio State University, USA | ||
15:20 20mTalk | Understanding Memory and Thread Safety Practices and Issues in Real-World Rust Programs PLDI Research Papers Boqin Qin Beijing University of Posts and Telecommunications, Pennsylvania State University, Yilun Chen Purdue University, USA, Zeming Yu Pennsylvania State University, USA, Linhai Song Pennsylvania State University, USA, Yiying Zhang University of California at San Diego, USA |