From 30f1276f1daec3bedaafb0a402098f8a842dad6c Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 May 2016 16:20:05 +0100 Subject: [PATCH] libxl: Do not trust backend for nic in devid_to_device libxl_devid_to_device_nic should read the information it needs from the /libxl/device path, not the backend. This is part of XSA-178. Signed-off-by: Ian Jackson Reviewed-by: Wei Liu --- tools/libxl/libxl.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index b8def179ba..6234da5daf 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -3035,21 +3035,16 @@ int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid, int devid, libxl_device_nic *nic) { GC_INIT(ctx); - char *libxl_dom_path, *path; + char *libxl_dom_path, *libxl_path; int rc = ERROR_FAIL; libxl_device_nic_init(nic); - libxl_dom_path = libxl__xs_libxl_path(gc, domid); + libxl_dom_path = libxl__xs_get_dompath(gc, domid); if (!libxl_dom_path) goto out; - path = libxl__xs_read(gc, XBT_NULL, - GCSPRINTF("%s/device/vif/%d/backend", libxl_dom_path, - devid)); - if (!path) - goto out; - - libxl__device_nic_from_xenstore(gc, path, nic); + libxl_path = GCSPRINTF("%s/device/vif/%d", libxl_dom_path, devid); + libxl__device_nic_from_xenstore(gc, libxl_path, nic); rc = 0; out: -- 2.39.5