diff options
author | Jeff Mahoney <jeffm@suse.com> | 2013-11-06 13:48:49 -0500 |
---|---|---|
committer | Jeff Mahoney <jeffm@suse.com> | 2013-11-06 13:48:49 -0500 |
commit | fe448aeac49e5eb7d388bbc8dc5c559b24a3d1b4 (patch) | |
tree | faef814996b2f53798c1ea1c27d1df0053ba8d8e | |
parent | 57eac8416ca75d459a606856a6e3e06d222e04f4 (diff) | |
download | reiserfsprogs-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.c | 7 |
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; } |