event-listener allows !Send tags to cross thread boundaries via StackSlot
Affected versions of event-listener unconditionally implement Send and
Sync for StackSlot<'_, T>, the stack-allocated listener type created
by the listener! macro.
This allows a !Send tag type set via Event::with_tag to be moved to
another thread and accessed via StackSlot::wait, causing a data race in safe
code.
See advisory page for additional details.
event-listener5.4.1Affected versions of
event-listenerunconditionally implementSendandSyncforStackSlot<'_, T>, the stack-allocated listener type createdby the
listener!macro.This allows a
!Sendtag type set viaEvent::with_tagto be moved toanother thread and accessed via
StackSlot::wait, causing a data race in safecode.
See advisory page for additional details.