From 424d83ea2a32c92c6b645c31bee90df1401667a7 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 29 Apr 2016 16:57:14 +0100 Subject: [PATCH] libxl: Do not trust backend for vtpm in getinfo (uuid) Use uuid from /libxl, rather than from backend. I think the backend is not supposed to change the uuid, since it seems to be set by libxl during setup. If in fact the backend is supposed to be able to change the uuid, this patch needs to be dropped and replaced by a patch which makes the vtpm uuid lookup tolerate bad or missing data. This is part of XSA-178. Signed-off-by: Ian Jackson Reviewed-by: Wei Liu --- tools/libxl/libxl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 6f96514aec..975060044c 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1888,10 +1888,10 @@ libxl_device_vtpm *libxl_device_vtpm_list(libxl_ctx *ctx, uint32_t domid, int *n &vtpm->backend_domid); if (rc) return NULL; - tmp = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/uuid", be_path)); + tmp = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/uuid", libxl_path)); if(tmp) { if(libxl_uuid_from_string(&(vtpm->uuid), tmp)) { - LOG(ERROR, "%s/uuid is a malformed uuid?? (%s) Probably a bug!!\n", be_path, tmp); + LOG(ERROR, "%s/uuid is a malformed uuid?? (%s) Probably a bug!!\n", libxl_path, tmp); exit(1); } } @@ -1947,7 +1947,7 @@ int libxl_device_vtpm_getinfo(libxl_ctx *ctx, vtpminfo->frontend_id = domid; val = libxl__xs_read(gc, XBT_NULL, - GCSPRINTF("%s/uuid", vtpminfo->backend)); + GCSPRINTF("%s/uuid", libxl_path)); if(val == NULL) { LOG(ERROR, "%s/uuid does not exist!\n", vtpminfo->backend); goto err; -- 2.39.5