event/opdl: fix resource leak
authorLiang Ma <liang.j.ma@intel.com>
Wed, 24 Jan 2018 15:05:50 +0000 (15:05 +0000)
committerJerin Jacob <jerin.jacob@caviumnetworks.com>
Wed, 31 Jan 2018 09:42:18 +0000 (10:42 +0100)
Coverity issue: 257004
Fixes: d548ef513cd7 ("event/opdl: add unit tests")

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
drivers/event/opdl/opdl_test.c

index 39c6cf8..1644279 100644 (file)
@@ -1001,11 +1001,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;
                }
        }
@@ -1021,6 +1023,7 @@ opdl_selftest(void)
                                rte_socket_id());
                if (!eventdev_func_mempool) {
                        PMD_DRV_LOG(ERR, "ERROR creating mempool\n");
+                       free(t);
                        return -1;
                }
        }
@@ -1043,9 +1046,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)