diff -r 8a3f14eda1c5 -r 1044405ba1d1 tools/libxl/libxl.c --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1256,7 +1256,6 @@ static char ** libxl_build_device_model_ int num = 0, i; flexarray_t *dm_args; int nb; - libxl_device_disk *disks; dm_args = flexarray_make(16, 1); if (!dm_args) @@ -1391,6 +1390,7 @@ static char ** libxl_build_device_model_ flexarray_set(dm_args, num++, "xenfv"); if (info->type == XENFV) { + libxl_device_disk *disks; disks = libxl_device_disk_list(libxl__gc_owner(gc), info->domid, &nb); for (i; i < nb; i++) { if (disks[i].is_cdrom) { @@ -1402,8 +1402,8 @@ static char ** libxl_build_device_model_ } libxl_device_disk_destroy(&disks[i]); } + free(disks); } - free(disks); flexarray_set(dm_args, num++, NULL); return (char **) flexarray_contents(dm_args); }