]> xenbits.xensource.com Git - xen.git/commitdiff
libxl: Do not trust backend for nic in devid_to_device
authorIan Jackson <ian.jackson@eu.citrix.com>
Wed, 4 May 2016 15:20:05 +0000 (16:20 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 6 Jun 2016 16:22:17 +0000 (17:22 +0100)
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 <Ian.Jackson@eu.citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
tools/libxl/libxl.c

index b8def179baa67f8fca9cabe08dc6c33a72007f5c..6234da5daf522e03f093be696b3187c36e126d18 100644 (file)
@@ -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: