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; } }