Fix potential memory leak due to kvlist not be freed.

Fixes: 0d0dd2d9d8ff ("net/pcap: enable data path for secondary process")
Cc: [email protected]

Reported-by: Gage Eads <[email protected]>
Signed-off-by: Qi Zhang <[email protected]>
---
 drivers/net/pcap/rte_eth_pcap.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index 9fd932772..65bbd7e2f 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -1258,7 +1258,8 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
                if (pp == NULL) {
                        PMD_LOG(ERR,
                                "Failed to allocate memory for process 
private");
-                       return -1;
+                       ret = -1;
+                       goto free_kvlist;
                }
 
                eth_dev->dev_ops = &ops;
@@ -1281,7 +1282,7 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
                        eth_dev->tx_pkt_burst = eth_pcap_tx;
 
                rte_eth_dev_probing_finish(eth_dev);
-               return 0;
+               goto free_kvlist;
        }
 
        ret = eth_from_pcaps(dev, &pcaps, pcaps.num_of_queue, &dumpers,
-- 
2.13.6

Reply via email to