When buf_len validations fails and return, the mbuf is not freed
which caused a memory leak.

Fixes: 8cffdcbe85aa ("net/dpaa: support scattered Rx")

Signed-off-by: Weiguo Li <liw...@foxmail.com>
---
 drivers/net/dpaa/dpaa_rxtx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c
index 956fe946fa..f66d975969 100644
--- a/drivers/net/dpaa/dpaa_rxtx.c
+++ b/drivers/net/dpaa/dpaa_rxtx.c
@@ -810,6 +810,7 @@ dpaa_eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf,
        }
        if (temp->buf_len < ((mbuf->nb_segs * sizeof(struct qm_sg_entry))
                                + temp->data_off)) {
+               rte_pktmbuf_free(temp);
                DPAA_PMD_ERR("Insufficient space in mbuf for SG entries");
                return -1;
        }
-- 
2.25.1

Reply via email to