[dpdk-dev,1/2] event/opdl: fix the resource leak issue

Message ID 1516806351-151804-1-git-send-email-liang.j.ma@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Liang, Ma Jan. 24, 2018, 3:05 p.m. UTC
  Fixes: d548ef513cd7 ("event/opdl: add unit tests")
Coverity issue: 257004

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
---
 drivers/event/opdl/opdl_test.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
  

Comments

Jerin Jacob Jan. 31, 2018, 9:43 a.m. UTC | #1
-----Original Message-----
> Date: Wed, 24 Jan 2018 15:05:50 +0000
> From: Liang Ma <liang.j.ma@intel.com>
> To: dev@dpdk.org
> CC: harry.van.haaren@intel.com, bruce.richardson@intel.com,
>  peter.mccarthy@intel.com, jerin.jacob@caviumnetworks.com
> Subject: [PATCH 1/2] event/opdl: fix the resource leak issue
> X-Mailer: git-send-email 2.7.5
> 
> Fixes: d548ef513cd7 ("event/opdl: add unit tests")
> Coverity issue: 257004
> 
> Signed-off-by: Liang Ma <liang.j.ma@intel.com>

Applied this series to dpdk-next-eventdev/master. Thanks.
  

Patch

diff --git a/drivers/event/opdl/opdl_test.c b/drivers/event/opdl/opdl_test.c
index 44a5cc5..4894c08 100644
--- a/drivers/event/opdl/opdl_test.c
+++ b/drivers/event/opdl/opdl_test.c
@@ -1002,11 +1002,13 @@  opdl_selftest(void)
 		/* turn on stats by default */
 		if (rte_vdev_init(eventdev_name, "do_validation=1") < 0) {
 			PMD_DRV_LOG(ERR, "Error creating eventdev\n");
+			free(t);
 			return -1;
 		}
 		evdev = rte_event_dev_get_dev_id(eventdev_name);
 		if (evdev < 0) {
 			PMD_DRV_LOG(ERR, "Error finding newly created eventdev\n");
+			free(t);
 			return -1;
 		}
 	}
@@ -1022,6 +1024,7 @@  opdl_selftest(void)
 				rte_socket_id());
 		if (!eventdev_func_mempool) {
 			PMD_DRV_LOG(ERR, "ERROR creating mempool\n");
+			free(t);
 			return -1;
 		}
 	}
@@ -1044,9 +1047,9 @@  opdl_selftest(void)
 	ret = single_link_w_stats(t);
 
 	/*
-	 * Free test instance, leaving mempool initialized, and a pointer to it
-	 * in static eventdev_func_mempool, as it is re-used on re-runs
+	 * Free test instance, free  mempool
 	 */
+	rte_mempool_free(t->mbuf_pool);
 	free(t);
 
 	if (ret != 0)