From: Ian Jackson Date: Wed, 4 May 2016 15:20:05 +0000 (+0100) Subject: libxl: Do not trust backend for nic in devid_to_device X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=30f1276f1daec3bedaafb0a402098f8a842dad6c;p=xen.git 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 --- 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: