From b2362b04e2d5fbd1a39019adf9e7e5f85cbdf2e1 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 May 2016 15:57:10 +0100 Subject: [PATCH 10/21] libxl: Do not trust backend for channel in getinfo Do not read the frontend path out of the backend. We have it in our hand. Likewise the guest (frontend) domid was one of our parameters (!) This is part of XSA-178. Signed-off-by: Ian Jackson Reviewed-by: Wei Liu --- tools/libxl/libxl.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index ded2040..05f3ba1 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -4065,12 +4065,8 @@ int libxl_device_channel_getinfo(libxl_ctx *ctx, uint32_t domid, val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/state", fe_path)); channelinfo->state = val ? strtoul(val, NULL, 10) : -1; - channelinfo->frontend = xs_read(ctx->xsh, XBT_NULL, - GCSPRINTF("%s/frontend", - channelinfo->backend), NULL); - val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/frontend-id", - channelinfo->backend)); - channelinfo->frontend_id = val ? strtoul(val, NULL, 10) : -1; + channelinfo->frontend = libxl__strdup(NOGC, fe_path); + channelinfo->frontend_id = domid; val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/ring-ref", fe_path)); channelinfo->rref = val ? strtoul(val, NULL, 10) : -1; val = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("%s/port", fe_path)); -- 2.1.4