From eb04bc1052e10188ac709658a5b794bdd31e9aa9 Mon Sep 17 00:00:00 2001 From: Alejandro Lucero Date: Wed, 8 Nov 2017 12:14:13 +0000 Subject: [PATCH] net/nfp: fix resource leak File descriptor is not released in any potential exit path inside the function. Coverity issue: 195018 Fixes: f37d8a4b67b2 ("net/nfp: add NSP FW upload command") Signed-off-by: Alejandro Lucero --- drivers/net/nfp/nfp_nspu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/nfp/nfp_nspu.c b/drivers/net/nfp/nfp_nspu.c index a2819a14ee..3c8cdadcf2 100644 --- a/drivers/net/nfp/nfp_nspu.c +++ b/drivers/net/nfp/nfp_nspu.c @@ -351,12 +351,14 @@ nfp_fw_upload(nspu_desc_t *nspu_desc) RTE_LOG(INFO, PMD, "fw file too big: %" PRIu64 " bytes (%" PRIu64 " max)", (uint64_t)fsize, (uint64_t)size); + close(fw_f); return -EINVAL; } fw_buf = malloc((size_t)size); if (!fw_buf) { RTE_LOG(INFO, PMD, "malloc failed for fw buffer"); + close(fw_f); return -ENOMEM; } memset(fw_buf, 0, size); @@ -367,12 +369,14 @@ nfp_fw_upload(nspu_desc_t *nspu_desc) "Just %" PRIu64 " of %" PRIu64 " bytes read.", (uint64_t)bytes, (uint64_t)fsize); free(fw_buf); + close(fw_f); return -EIO; } ret = nspu_command(nspu_desc, NSP_CMD_FW_LOAD, 0, 1, fw_buf, 0, bytes); free(fw_buf); + close(fw_f); return ret; } -- 2.20.1