Skip to content

virtio_net: fix write_data delivering corrupt packets on guest memory failure#2887

Draft
benhillis wants to merge 1 commit intomicrosoft:mainfrom
benhillis:user/benhill/virtio_net_write_data
Draft

virtio_net: fix write_data delivering corrupt packets on guest memory failure#2887
benhillis wants to merge 1 commit intomicrosoft:mainfrom
benhillis:user/benhill/virtio_net_write_data

Conversation

@benhillis
Copy link
Member

write_data previously set the packet length unconditionally, even when the guest memory write failed. This caused corrupt or partial data to be delivered to the guest. Additionally, write_header would panic on its length assertion since the stored length didn't match reality.

Fix write_data to only update the packet length on success. Add an early return in write_header when len is 0, allowing the packet to complete with zero length so the guest discards it.

… failure

write_data previously set the packet length unconditionally, even when
the guest memory write failed. This caused corrupt or partial data to
be delivered to the guest. Additionally, write_header would panic on
its length assertion since the stored length didn't match reality.

Fix write_data to only update the packet length on success. Add an
early return in write_header when len is 0, allowing the packet to
complete with zero length so the guest discards it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant