diff options
author | Liu Bo <bo.li.liu@oracle.com> | 2014-07-07 22:35:53 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2014-08-22 15:04:50 +0200 |
commit | 81be797c264cfa2e4f8e76624aa678a8013338a4 (patch) | |
tree | 132533f7e84a31455b9fe9f239db391717ed6313 /volumes.c | |
parent | 23d7f6d9dc0aa42e30fe9642b4e0876354d2c02e (diff) |
Btrfs-progs: fix Segmentation fault of btrfs-convert
Recently we merge a memory leak fix, which fails xfstests/btrfs/012,
the cause is that it only frees @fs_devices but leaves it on the global
fs_uuid list, which cause a 'Segmentation fault' over running command
btrfs-convert. This fixes the problem.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'volumes.c')
-rw-r--r-- | volumes.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -184,12 +184,18 @@ again: seed_devices = fs_devices->seed; fs_devices->seed = NULL; if (seed_devices) { + struct btrfs_fs_devices *orig; + + orig = fs_devices; fs_devices = seed_devices; + list_del(&orig->list); + free(orig); goto again; + } else { + list_del(&fs_devices->list); + free(fs_devices); } - list_del(&fs_devices->list); - free(fs_devices); return 0; } |