From 9b2061daa55fe42470435cdfd0529203a0ad1e40 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 May 2016 16:20:05 +0100 Subject: [PATCH 13/14] 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 | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index d20924c..ec141b5 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -3081,7 +3081,7 @@ 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); @@ -3089,13 +3089,9 @@ int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t 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_path = GCSPRINTF("%s/device/vif/%d", libxl_dom_path, devid); - rc = libxl__device_nic_from_xenstore(gc, path, nic); + rc = libxl__device_nic_from_xenstore(gc, libxl_path, nic); if (rc) goto out; rc = 0; -- 1.9.1