Skip to content

Buggy DescriptorChainConsummer::split_at()?

While working on moving the code to mm-virtio, I realize this part looks wrong:

https://gitlab.com/virtio-fs/virtiofsd-rs/-/blob/main/src/descriptor_utils.rs#L158

                self.buffers
                    .push_back(front.offset(rem).map_err(Error::VolatileMemoryError)?);
                other.push_front(front.offset(rem).map_err(Error::VolatileMemoryError)?);

The "other" end correctly receives the end of the buffer (at offset rem). But self should be truncated instead.