Skip to content

Commit

Permalink
Report soundness bug with lock_api
Browse files Browse the repository at this point in the history
  • Loading branch information
ammaraskar committed Nov 18, 2020
1 parent cdbb094 commit a94ee93
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions crates/lock_api/RUSTSEC-0000-0000.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "lock_api"
date = "2020-11-08"
url = "https://github.com/Amanieu/parking_lot/pull/262"
categories = ["memory-corruption"]
keywords = ["concurrency"]
informational = "unsound"

[versions]
patched = [">= 0.4.2"]

[affected]
functions = {
"lock_api::MappedMutexGuard" = [">= 0.1.0"]
"lock_api::MappedRwLockReadGuard" = [">= 0.1.0"]
"lock_api::MappedRwLockWriteGuard" = [">= 0.1.0"]
"lock_api::RwLockReadGuard" = [">= 0.1.0"]
"lock_api::RwLockWriteGuard" = [">= 0.1.0"]
}
```

# Some lock_api lock guard objects can cause data races

Affected versions of lock_api had unsound implementations of the `Send` or
`Sync` traits for some guard objects, namely:

* MappedMutexGuard
* MappedRwLockReadGuard
* MappedRwLockWriteGuard
* RwLockReadGuard
* RwLockWriteGuard

These guards could allow data races through types that are not safe to `Send`
across thread boundaries in safe Rust code.

This issue was fixed by changing the trait bounds on the `Mapped` guard types
and removing the `Sync` trait for the `RwLock` guards.

0 comments on commit a94ee93

Please sign in to comment.