diff options
| -rw-r--r-- | fs_mgr/fs_mgr.c | 6 |
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) */ |
