RUSTSEC-2020-0120: libsbc: `Decoder` can carry `R: !Send` to other threads

Description

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>.

More Info

https://github.com/mvertescher/libsbc-rs/issues/4

Patched Versions