From df1c2b3e2b3412c851a7ecaa056d1653d2f9f650 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 May 2016 16:20:05 +0100 Subject: [PATCH 15/21] 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 0f6648a..8cc9114 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -3635,7 +3635,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); @@ -3643,13 +3643,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; -- 2.1.4