-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
Worker::tag_recv accepts &mut [MaybeUninit<u8>] as a data buffer.
async-ucx/src/ucp/endpoint/tag.rs
Lines 5 to 8 in d382387
| pub async fn tag_recv(&self, tag: u64, buf: &mut [MaybeUninit<u8>]) -> usize { | |
| let (_, len) = self.tag_recv_mask(tag, u64::max_value(), buf).await; | |
| len | |
| } |
However, a future can be cancelled(dropped) at any time. While the IO operation is still in progress, the data buffer may be used after free. It's an unsoundness issue.
Metadata
Metadata
Assignees
Labels
No labels