[dpdk-dev] [PATCH v2] test/graph: fix memory leak

David Marchand david.marchand at redhat.com
Thu May 14 13:03:45 CEST 2020


On Thu, May 14, 2020 at 10:57 AM <kirankumark at marvell.com> wrote:
>
> From: Kiran Kumar K <kirankumark at marvell.com>
>
> Fix memory leaks reported by coverity.
>
> Coverity issue: 358439, 358451, 358448.

Please no '.' at the end of a tag (and sorting would not hurt).

I wanted to get a look at those, but I can't find them in coverity webui.
Maybe those issues have been closed, but then I can't look at them.. ?
Any help would be appreciated.


> Fixes: 6b89650418("test/graph: add functional tests")
>
> Signed-off-by: Kiran Kumar K <kirankumark at marvell.com>
> ---
> V2 changes:
> * Added Coverity issue and Fixes info.
>
>  app/test/test_graph.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/app/test/test_graph.c b/app/test/test_graph.c
> index cf6df0744..ed69eda99 100644
> --- a/app/test/test_graph.c
> +++ b/app/test/test_graph.c
> @@ -12,6 +12,7 @@
>  #include <rte_graph.h>
>  #include <rte_graph_worker.h>
>  #include <rte_mbuf.h>
> +#include <rte_random.h>
>
>  #include "test.h"
>
> @@ -145,7 +146,7 @@ uint16_t
>  test_node_worker_source(struct rte_graph *graph, struct rte_node *node,
>                         void **objs, uint16_t nb_objs)
>  {
> -       uint32_t obj_node0 = rand() % 100, obj_node1;
> +       uint32_t obj_node0 = rte_rand() % 100, obj_node1;

The commitlog indicates memory leaks, I am a bit surprised to see this change.
What is the rationale?


>         test_main_t *tm = &test_main;
>         struct rte_mbuf *data;
>         void **next_stream;
> @@ -193,7 +194,7 @@ test_node0_worker(struct rte_graph *graph, struct rte_node *node, void **objs,
>         test_main_t *tm = &test_main;
>
>         if (*(uint32_t *)node->ctx == test_node0.id) {
> -               uint32_t obj_node0 = rand() % 100, obj_node1;
> +               uint32_t obj_node0 = rte_rand() % 100, obj_node1;

Idem.


>                 struct rte_mbuf *data;
>                 uint8_t second_pass = 0;
>                 uint32_t count = 0;
> @@ -496,6 +497,7 @@ test_lookup_functions(void)
>                         printf("Test number of edges for node = %s failed Expected = %d, got %d\n",
>                                tm->test_node[i].node.name,
>                                tm->test_node[i].node.nb_edges, count);
> +                       free(next_edges);
>                         return -1;
>                 }
>
> @@ -505,6 +507,7 @@ test_lookup_functions(void)
>                                 printf("Edge name miss match, expected = %s got = %s\n",
>                                        tm->test_node[i].node.next_nodes[j],
>                                        next_edges[j]);
> +                               free(next_edges);
>                                 return -1;
>                         }
>                 }
> --
> 2.17.1
>


-- 
David Marchand



More information about the dev mailing list