aboutsummaryrefslogtreecommitdiff
path: root/devices/src/virtio/queue.rs
diff options
context:
space:
mode:
Diffstat (limited to 'devices/src/virtio/queue.rs')
-rw-r--r--devices/src/virtio/queue.rs7
1 files changed, 2 insertions, 5 deletions
diff --git a/devices/src/virtio/queue.rs b/devices/src/virtio/queue.rs
index a436f748f..1e4d8bdfb 100644
--- a/devices/src/virtio/queue.rs
+++ b/devices/src/virtio/queue.rs
@@ -162,11 +162,8 @@ impl DescriptorChain {
if self.len > 0 {
match self.get_mem_regions() {
Ok(regions) => {
- if regions.iter().any(|r| {
- self.mem
- .checked_offset(r.gpa, r.len as u64 - 1u64)
- .is_none()
- }) {
+ // Each region in `self.regions` must be a contiguous range in `self.mem`.
+ if !regions.iter().all(|r| self.mem.is_valid_range(r.gpa, r.len as u64)) {
return false;
}
}