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:
parent
23d7f6d9dc
commit
81be797c26
12
volumes.c
12
volumes.c
|
@ -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) {
|
||||||
fs_devices = seed_devices;
|
struct btrfs_fs_devices *orig;
|
||||||
goto again;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
orig = fs_devices;
|
||||||
|
fs_devices = seed_devices;
|
||||||
|
list_del(&orig->list);
|
||||||
|
free(orig);
|
||||||
|
goto again;
|
||||||
|
} else {
|
||||||
list_del(&fs_devices->list);
|
list_del(&fs_devices->list);
|
||||||
free(fs_devices);
|
free(fs_devices);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue