Some lock_api lock guard objects can cause data races
Affected versions of lock_api had unsound implementations of the Send or
Sync traits for some guard objects, namely:
- MappedMutexGuard
- MappedRwLockReadGuard
- MappedRwLockWriteGuard
- RwLockReadGuard
- RwLockWriteGuard
These guards could allow data races through types that are not safe to Send
across thread boundaries in safe Rust code.
This issue was fixed by changing the trait bounds on the Mapped guard types
and removing the Sync trait for the RwLock guards.
See advisory page for additional details.
lock_api0.3.4Affected versions of lock_api had unsound implementations of the
SendorSynctraits for some guard objects, namely:These guards could allow data races through types that are not safe to
Sendacross thread boundaries in safe Rust code.
This issue was fixed by changing the trait bounds on the
Mappedguard typesand removing the
Synctrait for theRwLockguards.See advisory page for additional details.