From a8e1030905537b8564b2da024040b20479b5271c Mon Sep 17 00:00:00 2001 From: Tomasz Duszynski Date: Tue, 22 Feb 2022 09:28:16 +0100 Subject: [PATCH] raw/cnxk_gpio: fix resource leak All used resources need to be properly cleaned up in error path. Fixes: 0e6557b448fa ("raw/cnxk_gpio: add self test") Coverity issue: 376504 Signed-off-by: Tomasz Duszynski Reviewed-by: Jerin Jacob --- drivers/raw/cnxk_gpio/cnxk_gpio.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/raw/cnxk_gpio/cnxk_gpio.c b/drivers/raw/cnxk_gpio/cnxk_gpio.c index 4ff132861d..9577753851 100644 --- a/drivers/raw/cnxk_gpio/cnxk_gpio.c +++ b/drivers/raw/cnxk_gpio/cnxk_gpio.c @@ -178,24 +178,30 @@ out: static int cnxk_gpio_read_attr(char *attr, char *val) { + int ret, ret2; FILE *fp; - int ret; fp = fopen(attr, "r"); if (!fp) return -errno; ret = fscanf(fp, "%s", val); - if (ret < 0) - return -errno; - if (ret != 1) - return -EIO; + if (ret < 0) { + ret = -errno; + goto out; + } + if (ret != 1) { + ret = -EIO; + goto out; + } - ret = fclose(fp); - if (ret) - return -errno; + ret = 0; +out: + ret2 = fclose(fp); + if (!ret) + ret = ret2; - return 0; + return ret; } static int -- 2.39.5