# HG changeset patch
# User Anthony PERARD <anthony.perard@xxxxxxxxxx>
# Date 1292263142 0
# Node ID cb75d32db0d68563844712abe04ea032ad197637
# Parent 46f5b6654436702dd70af130cc09210c21bf890b
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@xxxxxxxxxx>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
committer: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
tools/libxl/libxl.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff -r 46f5b6654436 -r cb75d32db0d6 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Mon Dec 13 17:58:20 2010 +0000
+++ b/tools/libxl/libxl.c Mon Dec 13 17:59:02 2010 +0000
@@ -1256,9 +1256,9 @@ static char ** libxl_build_device_model_
if (!dm_args)
return NULL;
- flexarray_set(dm_args, num++, "qemu-system-xen");
+ 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_
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]);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|