distributor: fix creation error checks
authorDavid Hunt <david.hunt@intel.com>
Tue, 4 Apr 2017 02:42:41 +0000 (03:42 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 4 Apr 2017 12:58:49 +0000 (14:58 +0200)
Coverity issue 143258: not freeing distributor instance
Coverity issue 143254: not checking return code from malloc
Fixes: 775003ad2f96 ("distributor: add new burst-capable library")

Signed-off-by: David Hunt <david.hunt@intel.com>
lib/librte_distributor/rte_distributor.c

index 06df13d..4725904 100644 (file)
@@ -621,9 +621,14 @@ rte_distributor_create_v1705(const char *name,
 
        if (alg_type == RTE_DIST_ALG_SINGLE) {
                d = malloc(sizeof(struct rte_distributor));
+               if (d == NULL) {
+                       rte_errno = ENOMEM;
+                       return NULL;
+               }
                d->d_v20 = rte_distributor_create_v20(name,
                                socket_id, num_workers);
                if (d->d_v20 == NULL) {
+                       free(d);
                        /* rte_errno will have been set */
                        return NULL;
                }