Skip to content

Commit d0b9cd8

Browse files
committed
Report 0041-unicycle to RustSec
1 parent 0a8f5ce commit d0b9cd8

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

crates/unicycle/RUSTSEC-0000-0000.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
```toml
2+
[advisory]
3+
id = "RUSTSEC-0000-0000"
4+
package = "unicycle"
5+
date = "2020-11-15"
6+
url = "https://github.com/udoprog/unicycle/issues/8"
7+
categories = ["memory-corruption"]
8+
9+
[versions]
10+
patched = [">= 0.7.1"]
11+
```
12+
13+
# PinSlab<T> and Unordered<T, S> need bounds on their Send/Sync traits
14+
15+
Affected versions of this crate unconditionally implemented `Send` & `Sync` for types `PinSlab<T>` & `Unordered<T, S>`. This allows sending non-Send types to other threads and concurrently accessing non-Sync types from multiple threads.
16+
17+
This can result in a data race & memory corruption when types that provide internal mutability without synchronization are contained within `PinSlab<T>` or `Unordered<T, S>` and accessed concurrently from multiple threads.
18+
19+
The flaw was corrected in commits 92f40b4 & 6a6c367 by adding trait bound `T: Send` to `Send` impls for `PinSlab<T>` & `Unordered<T, S>` and adding `T: Sync` to `Sync` impls for `PinSlab<T>` & `Unordered<T, S>`.

0 commit comments

Comments
 (0)