diff options
author | Rakesh Pandit <rakesh@tuxera.com> | 2014-04-20 16:17:53 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2014-05-02 17:03:50 +0200 |
commit | cdee9ecc184f60a5110f2b68c72ec8d46c103f4e (patch) | |
tree | b127965e6d5264540a5bcd9490345b6223b81835 /disk-io.c | |
parent | ad17d5608462e248c63f7be7b47bdbeaf971e52f (diff) |
Btrfs-progs: fsck: fix double free memory crash
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>
Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'disk-io.c')
-rw-r--r-- | disk-io.c | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -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)) |