In the affected versions of this crate,
AtomicOption<T>
unconditionally implements Sync
.
This allows programmers to move non-Sync types across thread boundaries (e.g. Rc<T>
, Arc<Cell<T>>
), which can lead to data races and undefined behavior.
It is also possible to send non-Send types like std::sync::MutexGuard
to other threads, which can lead to undefined behavior.
{ "license": "CC0-1.0" }