Merge pull request #679 from JOE1994/0027-libsbc

libsbc: Decoder<R> can carry `R: !Send` to other threads
This commit is contained in:
Sergey "Shnatsel" Davidoff
2021-01-25 15:40:45 +01:00
committed by GitHub

View File

@@ -0,0 +1,20 @@
```toml
[advisory]
id = "RUSTSEC-0000-0000"
package = "libsbc"
date = "2020-11-10"
url = "https://github.com/mvertescher/libsbc-rs/issues/4"
categories = ["memory-corruption"]
informational = "unsound"
[versions]
patched = [">= 0.1.5"]
```
# `Decoder<R>` can carry `R: !Send` to other threads
Affected versions of this crate implements `Send` for `Decoder<R>` for any `R: Read`. This allows `Decoder<R>` to contain `R: !Send` and carry (move) it to another thread.
This can result in undefined behavior such as memory corruption from data race on `R`, or dropping `R = MutexGuard<_>` from a thread that didn't lock the mutex.
The flaw was corrected in commit a34d6e1 by adding trait bound `R: Send` to the `Send` impl for `Decoder<R>`.