summaryrefslogtreecommitdiffstats
path: root/libmount/src/utils.c
diff options
context:
space:
mode:
authorKarel Zak2012-01-30 23:27:23 +0100
committerKarel Zak2012-01-30 23:27:23 +0100
commit4f69189fe7176b1740a149fabfe848f6d2b48d8e (patch)
treebbefd62b123b1afcace995f7bad85f29ac54ba85 /libmount/src/utils.c
parentlibmount: fix possible null dereferencing [coverity scan] (diff)
downloadkernel-qcow2-util-linux-4f69189fe7176b1740a149fabfe848f6d2b48d8e.tar.gz
kernel-qcow2-util-linux-4f69189fe7176b1740a149fabfe848f6d2b48d8e.tar.xz
kernel-qcow2-util-linux-4f69189fe7176b1740a149fabfe848f6d2b48d8e.zip
libmount: fix resource leak [coverity scan]
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src/utils.c')
-rw-r--r--libmount/src/utils.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libmount/src/utils.c b/libmount/src/utils.c
index 0bd7c361b..823289e5f 100644
--- a/libmount/src/utils.c
+++ b/libmount/src/utils.c
@@ -427,6 +427,7 @@ err:
static int get_filesystems(const char *filename, char ***filesystems, const char *pattern)
{
+ int rc = 0;
FILE *f;
char line[128];
@@ -436,7 +437,6 @@ static int get_filesystems(const char *filename, char ***filesystems, const char
while (fgets(line, sizeof(line), f)) {
char name[sizeof(line)];
- int rc;
if (*line == '#' || strncmp(line, "nodev", 5) == 0)
continue;
@@ -446,9 +446,11 @@ static int get_filesystems(const char *filename, char ***filesystems, const char
continue;
rc = add_filesystem(filesystems, name);
if (rc)
- return rc;
+ break;
}
- return 0;
+
+ fclose(f);
+ return rc;
}
int mnt_get_filesystems(char ***filesystems, const char *pattern)