ring: fix memory leak
authorPawel Wodkowski <pawelx.wodkowski@intel.com>
Wed, 25 Feb 2015 12:41:25 +0000 (13:41 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 4 Mar 2015 10:19:37 +0000 (11:19 +0100)
Free kvlist on function exit to avoid memory leak during devinit.

Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
lib/librte_pmd_ring/rte_eth_ring.c

index 83ecfa8..1e66d4e 100644 (file)
@@ -527,7 +527,7 @@ out:
 static int
 rte_pmd_ring_devinit(const char *name, const char *params)
 {
-       struct rte_kvargs *kvlist;
+       struct rte_kvargs *kvlist = NULL;
        int ret = 0;
        struct node_action_list *info = NULL;
 
@@ -548,7 +548,7 @@ rte_pmd_ring_devinit(const char *name, const char *params)
                        info = rte_zmalloc("struct node_action_list", sizeof(struct node_action_list) +
                                           (sizeof(struct node_action_pair) * ret), 0);
                        if (!info)
-                               goto out;
+                               goto out_free;
 
                        info->total = ret;
                        info->list = (struct node_action_pair*)(info + 1);
@@ -567,8 +567,8 @@ rte_pmd_ring_devinit(const char *name, const char *params)
        }
 
 out_free:
+       rte_kvargs_free(kvlist);
        rte_free(info);
-out:
        return ret;
 }