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>
This commit is contained in:
Liu Bo 2014-07-07 22:35:53 +08:00 committed by David Sterba
parent 23d7f6d9dc
commit 81be797c26
1 changed files with 8 additions and 2 deletions

View File

@ -184,12 +184,18 @@ again:
seed_devices = fs_devices->seed; seed_devices = fs_devices->seed;
fs_devices->seed = NULL; fs_devices->seed = NULL;
if (seed_devices) { if (seed_devices) {
struct btrfs_fs_devices *orig;
orig = fs_devices;
fs_devices = seed_devices; fs_devices = seed_devices;
list_del(&orig->list);
free(orig);
goto again; goto again;
} else {
list_del(&fs_devices->list);
free(fs_devices);
} }
list_del(&fs_devices->list);
free(fs_devices);
return 0; return 0;
} }