The return value by rte_kvargs_parse is not free(d), which leads
to memory leak.

Coverity issue: 127482

Fixes: ce2eabdd43ec ("net/virtio-user: add virtual device")

Signed-off-by: Jianfeng Tan <jianfeng.tan at intel.com>
---
 drivers/net/virtio/virtio_user_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/virtio/virtio_user_ethdev.c 
b/drivers/net/virtio/virtio_user_ethdev.c
index 8429b2e..8e39adf 100644
--- a/drivers/net/virtio/virtio_user_ethdev.c
+++ b/drivers/net/virtio/virtio_user_ethdev.c
@@ -320,7 +320,7 @@ virtio_user_eth_dev_alloc(const char *name)
 static int
 virtio_user_pmd_devinit(const char *name, const char *params)
 {
-       struct rte_kvargs *kvlist;
+       struct rte_kvargs *kvlist = NULL;
        struct rte_eth_dev *eth_dev;
        struct virtio_hw *hw;
        uint64_t queues = VIRTIO_USER_DEF_Q_NUM;
@@ -422,6 +422,8 @@ virtio_user_pmd_devinit(const char *name, const char 
*params)
        ret = 0;

 end:
+       if (kvlist)
+               rte_kvargs_free(kvlist);
        if (path)
                free(path);
        if (mac_addr)
-- 
2.1.4

Reply via email to