From 7bd50f1bd68b1b754f67e076498a77421edb0701 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 29 Apr 2016 17:18:44 +0100 Subject: [PATCH 02/14] libxl: Do not trust backend for vtpm in getinfo (except uuid) * Do not check the backend for existence. We have already read the /libxl path so know that the vtpm exists (or is supposed to); if the backend doesn't exist then that must be the backend's doing. * Get the frontend path from the /libxl directory. * The frontend domid is the guest domid, and does not need to be read from xenstore (!) We still attempt to read the uuid from the backend. This will be fixed in the next patch. This is part of XSA-178. Signed-off-by: Ian Jackson Reviewed-by: Wei Liu --- tools/libxl/libxl.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index c794d3a..b4ed33f 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1944,9 +1944,6 @@ int libxl_device_vtpm_getinfo(libxl_ctx *ctx, if (!vtpminfo->backend) { goto err; } - if(!libxl__xs_read(gc, XBT_NULL, vtpminfo->backend)) { - goto err; - } rc = libxl__backendpath_parse_domid(gc, vtpminfo->backend, &vtpminfo->backend_id); @@ -1965,11 +1962,8 @@ int libxl_device_vtpm_getinfo(libxl_ctx *ctx, vtpminfo->rref = val ? strtoul(val, NULL, 10) : -1; vtpminfo->frontend = xs_read(ctx->xsh, XBT_NULL, - GCSPRINTF("%s/frontend", vtpminfo->backend), NULL); - - val = libxl__xs_read(gc, XBT_NULL, - GCSPRINTF("%s/frontend-id", vtpminfo->backend)); - vtpminfo->frontend_id = val ? strtoul(val, NULL, 10) : -1; + GCSPRINTF("%s/frontend", libxl_path), NULL); + vtpminfo->frontend_id = domid; val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/uuid", vtpminfo->backend)); -- 1.9.1