RUSTSEC-2020-0119: ticketed_lock: ReadTicket and WriteTicket should only be sendable when T is Send

Description

Affected versions of this crate unconditionally implemented Send for ReadTicket<T> & WriteTicket<T>. This allows to send non-Send T to other threads.

This can allows creating data races by cloning types with internal mutability and sending them to other threads (as T of ReadTicket<T>/WriteTicket<T>). Such data races can cause memory corruption or other undefined behavior.

The flaw was corrected in commit a986a93 by adding T: Send bounds to Send impls of ReadTicket<T>/WriteTicket<T>.

More Info

https://github.com/kvark/ticketed_lock/issues/7

Patched Versions