[dpdk-dev] [PATCH 3/3] vhost: fix potential buffer overflow when batch dequeue
From: Marvin Liu <hidden>
Date: 2021-03-31 06:50:40
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
From: Marvin Liu <hidden>
Date: 2021-03-31 06:50:40
Subsystem:
library code, the rest · Maintainers:
Andrew Morton, Linus Torvalds
Similar as single dequeue, the multiple accesses of descriptor length
will lead to potential risk. One-time access of descriptor length can
eliminate this risk.
Fixes: 75ed51697820 ("vhost: add packed ring batch dequeue")
Cc: stable@dpdk.org
Signed-off-by: Marvin Liu <redacted>
Reviewed-by: Maxime Coquelin <redacted>
diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index de43686522..0a7d008a91 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c@@ -2318,7 +2318,7 @@ vhost_reserve_avail_batch_packed(struct virtio_net *dev, } vhost_for_each_try_unroll(i, 0, PACKED_BATCH_SIZE) { - pkts[i]->pkt_len = descs[avail_idx + i].len - buf_offset; + pkts[i]->pkt_len = lens[i] - buf_offset; pkts[i]->data_len = pkts[i]->pkt_len; ids[i] = descs[avail_idx + i].id; }
--
2.17.1