There will be a segfault when Rx burst size is greater than
MAX_PKT_BURST of memif. Fix the issue by correcting the
wrong mbuf index in eth_memif_rx, which results in accessing
invalid memory address.
Bugzilla ID: 1273
Fixes: aa17df860891 ("net/memif: add a Rx fast path")
Cc: [email protected]
Signed-off-by: Joyce Kong <[email protected]>
Reviewed-by: Feifei Wang <[email protected]>
Reviewed-by: Ruifeng Wang <[email protected]>
---
drivers/net/memif/rte_eth_memif.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/memif/rte_eth_memif.c
b/drivers/net/memif/rte_eth_memif.c
index 6a8ff5b4eb..f595656af5 100644
--- a/drivers/net/memif/rte_eth_memif.c
+++ b/drivers/net/memif/rte_eth_memif.c
@@ -356,7 +356,7 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t
nb_pkts)
rx_pkts = 0;
pkts = nb_pkts < MAX_PKT_BURST ? nb_pkts : MAX_PKT_BURST;
while (n_slots && rx_pkts < pkts) {
- mbuf_head = mbufs[n_rx_pkts];
+ mbuf_head = mbufs[rx_pkts];
mbuf = mbuf_head;
next_slot1:
--
2.25.1