Fix potential memory leak due to kvlist not be freed.

Fixes: 0d0dd2d9d8ff ("net/pcap: enable data path for secondary process")
Cc: sta...@dpdk.org

Reported-by: Gage Eads <gage.e...@intel.com>
Signed-off-by: Qi Zhang <qi.z.zh...@intel.com>
---
 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