From 90f14dc5c68f52baeef9722090695a166c7e083d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 4 May 2016 15:30:32 +0100 Subject: [PATCH 04/10] libxl: Do not trust frontend in libxl__device_nextid When selecting the devid for a new device, we should look in /libxl/device for existing devices, not in the frontend area. This is part of XSA-175. Signed-off-by: Ian Jackson Reviewed-by: Wei Liu --- tools/libxl/libxl.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index e2a5be3..b52e63e 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1743,15 +1743,16 @@ out: /* common function to get next device id */ static int libxl__device_nextid(libxl__gc *gc, uint32_t domid, char *device) { - char *dompath, **l; + char *libxl_dom_path, **l; unsigned int nb; int nextid = -1; - if (!(dompath = libxl__xs_get_dompath(gc, domid))) + if (!(libxl_dom_path = libxl__xs_libxl_path(gc, domid))) return nextid; l = libxl__xs_directory(gc, XBT_NULL, - GCSPRINTF("%s/device/%s", dompath, device), &nb); + GCSPRINTF("%s/device/%s", libxl_dom_path, device), + &nb); if (l == NULL || nb == 0) nextid = 0; else -- 2.1.4