aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2013-11-06 13:48:49 -0500
committerJeff Mahoney <jeffm@suse.com>2013-11-06 13:48:49 -0500
commitfe448aeac49e5eb7d388bbc8dc5c559b24a3d1b4 (patch)
treefaef814996b2f53798c1ea1c27d1df0053ba8d8e
parent57eac8416ca75d459a606856a6e3e06d222e04f4 (diff)
downloadreiserfsprogs-fe448aeac49e5eb7d388bbc8dc5c559b24a3d1b4.tar.gz
debugreiserfs: fix use after free while closing log
reiserfs_close(fs) frees fs and we were using it after freeing to close the log. Signed-off-by: Jeff Mahoney <jeffm@suse.com>
-rw-r--r--debugreiserfs/debugreiserfs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/debugreiserfs/debugreiserfs.c b/debugreiserfs/debugreiserfs.c
index edd89db..89bfece 100644
--- a/debugreiserfs/debugreiserfs.c
+++ b/debugreiserfs/debugreiserfs.c
@@ -686,6 +686,7 @@ int main(int argc, char *argv[])
char *file_name;
int error;
struct debugreiserfs_data *data;
+ FILE *log;
data = getmem(sizeof(struct debugreiserfs_data));
file_name = parse_options(data, argc, argv);
@@ -777,9 +778,9 @@ int main(int argc, char *argv[])
break;
}
+ log = data(fs)->log;
reiserfs_close(fs);
- if (data(fs)->log) {
- fclose(data(fs)->log);
- }
+ if (log)
+ fclose(log);
return 0;
}