36 lines
1.1 KiB
Diff
36 lines
1.1 KiB
Diff
|
From 4c92a4a31b51950d8d0f167a0391586803802f4c Mon Sep 17 00:00:00 2001
|
||
|
From: Rakesh Pandit <rakesh@tuxera.com>
|
||
|
Date: Sun, 20 Apr 2014 16:17:53 +0300
|
||
|
Subject: [PATCH 08/42] 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>
|
||
|
---
|
||
|
disk-io.c | 3 +--
|
||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/disk-io.c b/disk-io.c
|
||
|
index 19b95a724f1b..8db0335bc81b 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))
|
||
|
--
|
||
|
1.9.0
|
||
|
|