Message ID | 20140420131751.GA5921@hercules.tuxera.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | David Sterba |
Headers | show |
diff --git a/disk-io.c b/disk-io.c index 19b95a7..8db0335 100644 --- a/disk-io.c +++ b/disk-io.c @@ -1091,8 +1091,7 @@ static struct btrfs_fs_info *__open_ctree_fd(int fp, const char *path, ret = btrfs_open_devices(fs_devices, oflags); if (ret) - goto out_devices; - + goto out; disk_super = fs_info->super_copy; if (!(flags & OPEN_CTREE_RECOVER_SUPER))
Fix double free of memory if btrfs_open_devices fails: *** Error in `btrfs': double free or corruption (fasttop): 0x000000000066e020 *** Crash happened because when open failed on device inside btrfs_open_devices it freed all memory by calling btrfs_close_devices but inside disk-io.c we call btrfs_close_again it again. Signed-off-by: Rakesh Pandit <rakesh@tuxera.com> --- disk-io.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)