]> git.droids-corp.org - dpdk.git/commitdiff
examples/ip_pipeline: fix leak on tap creation failure
authorReshma Pattan <reshma.pattan@intel.com>
Wed, 18 Apr 2018 16:58:09 +0000 (17:58 +0100)
committerCristian Dumitrescu <cristian.dumitrescu@intel.com>
Tue, 8 May 2018 11:09:20 +0000 (13:09 +0200)
Close tap device fd before returning upon failures.

Coverity issue: 272576
Fixes: 2f74ae28e2 ("examples/ip_pipeline: add tap object")
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Jasvinder Singh <jasvinder.singh@intel.com>
examples/ip_pipeline/tap.c

index 5b340321897f97973e00884e92aea02abbcaff82..a0f60867f7546ff7d69b6d82a12700a2e7fca4ca 100644 (file)
@@ -76,14 +76,17 @@ tap_create(const char *name)
        snprintf(ifr.ifr_name, IFNAMSIZ, "%s", name);
 
        status = ioctl(fd, TUNSETIFF, (void *) &ifr);
-       if (status < 0)
+       if (status < 0) {
+               close(fd);
                return NULL;
+       }
 
        /* Node allocation */
        tap = calloc(1, sizeof(struct tap));
-       if (tap == NULL)
+       if (tap == NULL) {
+               close(fd);
                return NULL;
-
+       }
        /* Node fill in */
        strncpy(tap->name, name, sizeof(tap->name));
        tap->fd = fd;