libxl: strdup disk path before put it in qemu args array.

In libxl_build_device_model_args_new, the path to the disk image are
freeed before there was actually use to make the arguments list of Qemu.
The patch strdups it.

This patch also changes argv[0] of the device model.
Now, it is the conventional argv[0], so is value come from
info->device_model.


Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
committer: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 tools/libxl/libxl.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
This commit is contained in:
Anthony PERARD committed 2010-12-13 17:59:02 +00:00
1 parent 3c97df22be
commit 5b4d52decb
1 file changed
+5 -5
+5 -5
View File
@@ -1256,9 +1256,9 @@ static char ** libxl_build_device_model_args_new(libxl__gc *gc,
if (!dm_args)
return NULL;
flexarray_set(dm_args, num++, "qemu-system-xen");
flexarray_set(dm_args, num++, "-xen-domid");
flexarray_set(dm_args, num++, libxl__strdup(gc, info->device_model));
flexarray_set(dm_args, num++, "-xen-domid");
flexarray_set(dm_args, num++, libxl__sprintf(gc, "%d", info->domid));
if (info->dom_name) {
@@ -1378,10 +1378,10 @@ static char ** libxl_build_device_model_args_new(libxl__gc *gc,
for (i; i < nb; i++) {
if ( disks[i].is_cdrom ) {
flexarray_set(dm_args, num++, "-cdrom");
flexarray_set(dm_args, num++, disks[i].physpath);
}else{
flexarray_set(dm_args, num++, libxl__strdup(gc, disks[i].physpath));
} else {
flexarray_set(dm_args, num++, libxl__sprintf(gc, "-%s", disks[i].virtpath));
flexarray_set(dm_args, num++, disks[i].physpath);
flexarray_set(dm_args, num++, libxl__strdup(gc, disks[i].physpath));
}
libxl_device_disk_destroy(&disks[i]);
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.