Ian Campbell
2011-Jun-23 16:10 UTC
[Xen-devel] [PATCH] libxl: fail to parse disk vpath if a disk+part number is required but unavailable
# HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # Date 1308843343 -3600 # Node ID 4fa92ff6c6156c2723d716a48c041dcb2c92938b # Parent 18476e67178555b92b9bf893a3c550a9095caef8 libxl: fail to parse disk vpath if a disk+part number is required but unavailable 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> diff -r 18476e671785 -r 4fa92ff6c615 tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Thu Jun 23 16:34:08 2011 +0100 +++ b/tools/libxl/libxl_device.c Thu Jun 23 16:35:43 2011 +0100 @@ -222,8 +222,12 @@ int libxl__device_disk_dev_number(char * 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, _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Campbell
2011-Jul-14 16:00 UTC
[Xen-devel] [PATCH] libxl: fail to parse disk vpath if a disk+part number is required but unavailable
# HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # Date 1310646155 -3600 # Node ID 2f14754868462d173a46d47c710db01aecedd3f4 # Parent 725f44036b337a464866b3762d1136702ee05473 libxl: fail to parse disk vpath if a disk+part number is required but unavailable 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> diff -r 725f44036b33 -r 2f1475486846 tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Thu Jul 14 13:22:35 2011 +0100 +++ b/tools/libxl/libxl_device.c Thu Jul 14 13:22:35 2011 +0100 @@ -341,8 +341,12 @@ int libxl__device_disk_dev_number(const 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, _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel