summaryrefslogtreecommitdiff
path: root/mkfs.c
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2011-12-12 20:00:25 +0200
committerIlya Dryomov <idryomov@gmail.com>2011-12-12 20:00:25 +0200
commitd5734e88370bc7bfe83e9d33b6f51c905a8fb91e (patch)
treea33b422ffd5e2b3f53477a00b36e193933fe4b07 /mkfs.c
parentfdb6c0402337d9607c7a39155088eaf033742752 (diff)
Btrfs-progs: fail gracefully on error from open_ctree()
Error checking block got moved mistakenly exposing us to a potential segmentation fault. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'mkfs.c')
-rw-r--r--mkfs.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/mkfs.c b/mkfs.c
index e3ced195..2085ae1e 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -1328,7 +1328,12 @@ int main(int ac, char **av)
fprintf(stderr, "error during mkfs %d\n", ret);
exit(1);
}
+
root = open_ctree(file, 0, O_RDWR);
+ if (!root) {
+ fprintf(stderr, "ctree init failed\n");
+ exit(1);
+ }
root->fs_info->alloc_start = alloc_start;
ret = make_root_dir(root, mixed);
@@ -1343,10 +1348,6 @@ int main(int ac, char **av)
goto raid_groups;
btrfs_register_one_device(file);
- if (!root) {
- fprintf(stderr, "ctree init failed\n");
- return -1;
- }
zero_end = 1;
while(ac-- > 0) {