From 19acb3fd9b2c4d0a91b2d47700ce2a2ea522e82c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Thu, 31 Oct 2013 16:22:38 +0100 Subject: [PATCH] Feature #1612: Enforce correct format for DISK/SIZE --- src/image/ImagePool.cc | 11 +++++++++++ src/vm/VirtualMachine.cc | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/image/ImagePool.cc b/src/image/ImagePool.cc index f47c9943f2..ad2f871f76 100644 --- a/src/image/ImagePool.cc +++ b/src/image/ImagePool.cc @@ -357,6 +357,17 @@ int ImagePool::disk_attribute(int vm_id, return -1; } + int rc; + long long size; + + rc = disk->vector_value("SIZE", size); + + if ( rc != 0 || size <= 0 ) + { + error_str = "SIZE attribute must be a positive integer value."; + return -1; + } + img_type = Image::DATABLOCK; dev_prefix = disk->vector_value("DEV_PREFIX"); diff --git a/src/vm/VirtualMachine.cc b/src/vm/VirtualMachine.cc index 3ad9182b9a..873abbc117 100644 --- a/src/vm/VirtualMachine.cc +++ b/src/vm/VirtualMachine.cc @@ -1729,6 +1729,9 @@ int VirtualMachine::get_disk_images(string& error_str) } else { + oss << "DISK " << i << ": " << error_str; + error_str = oss.str(); + goto error_common; } }