From 63304d0be77c3ee28d2ab670bcffd70485a7f6b5 Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Wed, 24 Mar 2021 10:05:14 +0100 Subject: [PATCH] net_util: Check descriptor size There is no point in queueing an empty descriptor in the list of iovecs. Let's simply ignore such case and avoid some unnecessary processing. Signed-off-by: Sebastien Boeuf --- net_util/src/queue_pair.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net_util/src/queue_pair.rs b/net_util/src/queue_pair.rs index 75df2eaeb..7a7437c42 100644 --- a/net_util/src/queue_pair.rs +++ b/net_util/src/queue_pair.rs @@ -43,7 +43,7 @@ impl TxVirtio { let mut iovecs = Vec::new(); while let Some(desc) = next_desc { - if !desc.is_write_only() { + if !desc.is_write_only() && desc.len > 0 { let buf = mem .get_slice(desc.addr, desc.len as usize) .map_err(NetQueuePairError::GuestMemory)? @@ -118,7 +118,7 @@ impl RxVirtio { let mut iovecs = Vec::new(); while let Some(desc) = next_desc { - if desc.is_write_only() { + if desc.is_write_only() && desc.len > 0 { let buf = mem .get_slice(desc.addr, desc.len as usize) .map_err(NetQueuePairError::GuestMemory)?