[v2] test/graph: fix memory leak
diff mbox series

Message ID 20200514085658.12287-1-kirankumark@marvell.com
State Superseded, archived
Headers show
Series
  • [v2] test/graph: fix memory leak
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/checkpatch warning coding style issues

Commit Message

Kiran Kumar Kokkilagadda May 14, 2020, 8:56 a.m. UTC
From: Kiran Kumar K <kirankumark@marvell.com>

Fix memory leaks reported by coverity.

Coverity issue: 358439, 358451, 358448.
Fixes: 6b89650418("test/graph: add functional tests")

Signed-off-by: Kiran Kumar K <kirankumark@marvell.com>
---
V2 changes:
* Added Coverity issue and Fixes info.

 app/test/test_graph.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--
2.17.1

Comments

David Marchand May 14, 2020, 11:03 a.m. UTC | #1
On Thu, May 14, 2020 at 10:57 AM <kirankumark@marvell.com> wrote:
>
> From: Kiran Kumar K <kirankumark@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@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
>
Kiran Kumar Kokkilagadda May 14, 2020, 11:20 a.m. UTC | #2
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Thursday, May 14, 2020 4:34 PM
> To: Kiran Kumar Kokkilagadda <kirankumark@marvell.com>
> Cc: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Nithin Kumar Dabilpuram
> <ndabilpuram@marvell.com>; dev <dev@dpdk.org>; Mcnamara, John
> <john.mcnamara@intel.com>
> Subject: [EXT] Re: [dpdk-dev] [PATCH v2] test/graph: fix memory leak
> 
> External Email
> 
> ----------------------------------------------------------------------
> On Thu, May 14, 2020 at 10:57 AM <kirankumark@marvell.com> wrote:
> >
> > From: Kiran Kumar K <kirankumark@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).
> 


Will fix in V3.

> 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@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?
> 
Merged all the coverity issues to single patch. Will change the description in V3.

> 
> >         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

Patch
diff mbox series

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;
 	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;
 		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;
 			}
 		}