File debugreiserfs-fix-use-after-free-while-closing-log of Package reiserfs

From fe448aeac49e5eb7d388bbc8dc5c559b24a3d1b4 Mon Sep 17 00:00:00 2001
From: Jeff Mahoney <jeffm@suse.com>
Date: Wed, 6 Nov 2013 13:48:49 -0500
Subject: debugreiserfs: fix use after free while closing log
Git-repo: gitolite.kernel.org:/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git
Git-commit: fe448aeac49e5eb7d388bbc8dc5c559b24a3d1b4
References: bnc#849264

reiserfs_close(fs) frees fs and we were using it after freeing
to close the log.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
 debugreiserfs/debugreiserfs.c | 7 ++++---
 1 file 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;
 }

openSUSE Build Service is sponsored by