From: Reshma Pattan Date: Wed, 18 Apr 2018 16:58:09 +0000 (+0100) Subject: examples/ip_pipeline: fix leak on tap creation failure X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=0015ea276725a5e2a8f634b76c67a524c0c0a3ca;p=dpdk.git 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 Reviewed-by: Jasvinder Singh --- diff --git a/examples/ip_pipeline/tap.c b/examples/ip_pipeline/tap.c index 5b34032189..a0f60867f7 100644 --- a/examples/ip_pipeline/tap.c +++ b/examples/ip_pipeline/tap.c @@ -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;