]> git.droids-corp.org - dpdk.git/commitdiff
raw/cnxk_gpio: fix resource leak
authorTomasz Duszynski <tduszynski@marvell.com>
Tue, 22 Feb 2022 08:28:16 +0000 (09:28 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 23 Feb 2022 17:27:49 +0000 (18:27 +0100)
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 <tduszynski@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
drivers/raw/cnxk_gpio/cnxk_gpio.c

index 4ff132861dbae04b70ebc88fd0f28901cb82f44e..95777538512f7d75ad7aee729641def05d385286 100644 (file)
@@ -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