]> xenbits.xensource.com Git - xen.git/commitdiff
libxl: fail to parse disk vpath if a disk+part number needed but unavailable
authorIan Campbell <ian.campbell@citrix.com>
Wed, 28 Sep 2011 15:31:11 +0000 (16:31 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 28 Sep 2011 15:31:11 +0000 (16:31 +0100)
libxl__device_disk_dev_number() can parse a virtpath which is an encoded
unsigned long but does not set *pdisk or *ppartition in that case.

Ideally we would parse the number but for now simply fail to prevent cascading
failures.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl_device.c

index 7931b11abcf4abad9112fd8a3be969896f1e09e0..124ea4cd70393e09b97313b49e0b08ef5448987a 100644 (file)
@@ -341,8 +341,12 @@ int libxl__device_disk_dev_number(const char *virtpath, int *pdisk,
 
     errno = 0;
     ul = strtoul(virtpath, &ep, 0);
-    if (!errno && !*ep && ul <= INT_MAX)
+    if (!errno && !*ep && ul <= INT_MAX) {
+        /* FIXME: should parse ul to determine these. */
+        if (pdisk || ppartition)
+            return -1;
         return ul;
+    }
 
     if (device_virtdisk_matches(virtpath, "hd",
                                 &disk, 3,