mirror of
https://github.com/OMGeeky/advisory-db.git
synced 2025-12-31 00:30:25 +01:00
data race in lexer::ReaderResult<T, E>
This commit is contained in:
21
crates/lexer/RUSTSEC-0000-0000.md
Normal file
21
crates/lexer/RUSTSEC-0000-0000.md
Normal file
@@ -0,0 +1,21 @@
|
||||
```toml
|
||||
[advisory]
|
||||
id = "RUSTSEC-0000-0000"
|
||||
package = "lexer"
|
||||
date = "2020-11-10"
|
||||
url = "https://gitlab.com/nathanfaucett/rs-lexer/-/issues/2"
|
||||
categories = ["memory-corruption"]
|
||||
|
||||
[versions]
|
||||
patched = []
|
||||
```
|
||||
|
||||
# ReaderResult should be bounded by Sync
|
||||
|
||||
Affected versions of this crate implements `Sync` for `ReaderResult<T, E>` with the trait bound `T: Send, E: Send`.
|
||||
|
||||
Since matching on the public enum `ReaderResult<T, E>` provides access to `&T` & `&E`,
|
||||
allowing data race to a non-Sync type `T` or `E`.
|
||||
This can result in a memory corruption when multiple threads concurrently access `&T` or `&E`.
|
||||
|
||||
Suggested fix for the bug is change the trait bounds imposed on `T` & `E` to be `T: Sync, E: Sync`.
|
||||
Reference in New Issue
Block a user