Lucene search

K
rustsecRustsecRUSTSEC-2020-0112
HistoryDec 18, 2020 - 12:00 p.m.

ButtplugFutureStateShared allows data race to (!Send|!Sync) objects

2020-12-1812:00:00
rustsec.org
6
buttplugfuturestateshared
data race
non-send
non-sync
undefined behavior
rustc
version 1.0.4

EPSS

0.001

Percentile

46.4%

ButtplugFutureStateShared<T> implements Send & Sync regardless of T.

If T: !Send for ButtplugFutureStateShared<T>, it is possible to move non-Send types across thread boundaries (e.g. T=Rc<T>) and lead to undefined behavior.
If T: !Sync for ButtplugFutureStateShared<T>, it is possible to cause data race to T (e.g. T=Arc<Cell<_>>) and lead to undefined behavior.

The flaw was corrected in version 1.0.4 by removing manual implementations of Send/Sync for ButtplugFutureStateShared<T> to let rustc generate auto trait implementations with correct trait bounds on T.

EPSS

0.001

Percentile

46.4%

Related for RUSTSEC-2020-0112