Data races in unicycle
Moderate severity
GitHub Reviewed
Published
Aug 25, 2021
to the GitHub Advisory Database
•
Updated Jan 9, 2023
Withdrawn
This advisory was withdrawn on Aug 24, 2021
Description
Reviewed
Aug 5, 2021
Withdrawn
Aug 24, 2021
Published to the GitHub Advisory Database
Aug 25, 2021
Last updated
Jan 9, 2023
Affected versions of this crate unconditionally implemented
Send&Syncfor typesPinSlab<T>&Unordered<T, S>. This allows sending non-Send types to other threads and concurrently accessing non-Sync types from multiple threads.This can result in a data race & memory corruption when types that provide internal mutability without synchronization are contained within
PinSlab<T>orUnordered<T, S>and accessed concurrently from multiple threads.The flaw was corrected in commits 92f40b4 & 6a6c367 by adding trait bound
T: SendtoSendimpls forPinSlab<T>&Unordered<T, S>and addingT: SynctoSyncimpls forPinSlab<T>&Unordered<T, S>.References