aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl.c
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-04-12 11:22:26 -0400
committerIan Campbell <ian.campbell@citrix.com>2013-04-17 14:56:27 +0100
commit26c35e5cb93a7b4dcde940620eb7ac1845ed6e5a (patch)
tree7e3ffa56052f886a719371750df63a68b1f012fd /tools/libxl/libxl.c
parentef496b81f0336f09968a318e7f81151dd4f5a0cc (diff)
downloadxen-26c35e5cb93a7b4dcde940620eb7ac1845ed6e5a.tar.gz
xen-26c35e5cb93a7b4dcde940620eb7ac1845ed6e5a.tar.bz2
xen-26c35e5cb93a7b4dcde940620eb7ac1845ed6e5a.zip
libxl: properly initialize device structures
This avoids returning unallocated memory in the libxl_device_vtpm structure in libxl_device_vtpm_list, and uses libxl_device_nic_init instead of memset when initializing libxl_device_nics. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/libxl/libxl.c')
-rw-r--r--tools/libxl/libxl.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index fa6dfed29e..0f936c0ab7 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -1850,6 +1850,8 @@ libxl_device_vtpm *libxl_device_vtpm_list(libxl_ctx *ctx, uint32_t domid, int *n
GCSPRINTF("%s/%s/backend",
fe_path, *dir));
+ libxl_device_vtpm_init(vtpm);
+
vtpm->devid = atoi(*dir);
tmp = libxl__xs_read(gc, XBT_NULL,
@@ -1953,7 +1955,7 @@ int libxl_devid_to_device_vtpm(libxl_ctx *ctx,
if (!vtpms)
return ERROR_FAIL;
- memset(vtpm, 0, sizeof (libxl_device_vtpm));
+ libxl_device_vtpm_init(vtpm);
rc = 1;
for (i = 0; i < nb; ++i) {
if(devid == vtpms[i].devid) {
@@ -2932,7 +2934,7 @@ static void libxl__device_nic_from_xs_be(libxl__gc *gc,
char *tmp;
int rc;
- memset(nic, 0, sizeof(*nic));
+ libxl_device_nic_init(nic);
tmp = xs_read(ctx->xsh, XBT_NULL,
libxl__sprintf(gc, "%s/handle", be_path), &len);
@@ -2971,7 +2973,7 @@ int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid,
char *dompath, *path;
int rc = ERROR_FAIL;
- memset(nic, 0, sizeof (libxl_device_nic));
+ libxl_device_nic_init(nic);
dompath = libxl__xs_get_dompath(gc, domid);
if (!dompath)
goto out;