summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs_mgr/fs_mgr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c
index dabbc2759..9a84a4ec5 100644
--- a/fs_mgr/fs_mgr.c
+++ b/fs_mgr/fs_mgr.c
@@ -244,7 +244,7 @@ struct fstab *fs_mgr_read_fstab(const char *fstab_path)
char *line = NULL;
const char *delim = " \t";
char *save_ptr, *p;
- struct fstab *fstab;
+ struct fstab *fstab = NULL;
struct fstab_rec *recs;
struct fs_mgr_flag_values flag_vals;
#define FS_OPTIONS_LEN 1024
@@ -363,7 +363,10 @@ struct fstab *fs_mgr_read_fstab(const char *fstab_path)
return fstab;
err:
+ fclose(fstab_file);
free(line);
+ if (fstab)
+ fs_mgr_free_fstab(fstab);
return NULL;
}
@@ -379,7 +382,6 @@ void fs_mgr_free_fstab(struct fstab *fstab)
free(fstab->recs[i].fs_options);
free(fstab->recs[i].key_loc);
free(fstab->recs[i].label);
- i++;
}
/* Free the fstab_recs array created by calloc(3) */