mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
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:
1 parent
4a78d36024
commit
13de0ee031
1 file changed
+4
-3
+4
-3
@@ -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
|
||||
|
||||