examples/ip_pipeline: fix leak on tap creation failure

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>
This commit is contained in:
Reshma Pattan 2018-04-18 17:58:09 +01:00 committed by Cristian Dumitrescu
parent 89668b1c75
commit 0015ea2767

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