From: Joyce Kong Date: Wed, 25 May 2022 05:56:35 +0000 (+0000) Subject: net/memif: fix overwriting of head segment X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=10c4c4d4eac1b7def2d2e8a63f9d302cf42a606c;p=dpdk.git net/memif: fix overwriting of head segment The 'dst_off' was reset in multi segment case. This caused memif buffer segment to write to beginning of mbuf, overwriting previous data. Fix it with this patch. Fixes: 09c7e63a71f9 ("net/memif: introduce memory interface PMD") Cc: stable@dpdk.org Reported-by: Ferruh Yigit Signed-off-by: Joyce Kong Reviewed-by: Ruifeng Wang --- diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c index 587ad45576..dd951b8296 100644 --- a/drivers/net/memif/rte_eth_memif.c +++ b/drivers/net/memif/rte_eth_memif.c @@ -348,13 +348,13 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) goto no_free_bufs; mbuf = mbuf_head; mbuf->port = mq->in_port; + dst_off = 0; next_slot: s0 = cur_slot & mask; d0 = &ring->desc[s0]; src_len = d0->length; - dst_off = 0; src_off = 0; do {