-
Notifications
You must be signed in to change notification settings - Fork 59
Open
Description
I've found the following data races in darwin.c
:
- The
static unsigned long long size
is a mutable global that is read/modified without any synchronization.Line 109 in 1c119b3
static unsigned long long size = 0; - It looks like this is meant to be an optimization but it is unsound since it is called directly from the public Rust function
mem_info()
. Multiple Rust threads could racily write to the global variablesize
.
static int skipvfs
is mutable global that is racily initizialized inmakevfslist()
.Line 20 in 1c119b3
static int skipvfs; disk_info()
is a public Rust function that can be directly called from safe Rust code
Metadata
Metadata
Assignees
Labels
No labels