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 <Ian.Jackson@eu.citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
This commit is contained in:
Ian Jackson authored and Ian Jackson committed 2016-06-06 17:06:43 +01:00
1 parent 4a78d36024
commit 13de0ee031
1 file changed
+4 -3
+4 -3
View File
@@ -1725,15 +1725,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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.