diff --git a/include/Attribute.h b/include/Attribute.h index cd3b8f2881..c0614410db 100644 --- a/include/Attribute.h +++ b/include/Attribute.h @@ -393,7 +393,7 @@ public: /** * Clones the current attribute */ - Attribute* clone() const + VectorAttribute* clone() const { return new VectorAttribute(*this); }; diff --git a/src/vm/VirtualMachine.cc b/src/vm/VirtualMachine.cc index 646bf87640..122349e373 100644 --- a/src/vm/VirtualMachine.cc +++ b/src/vm/VirtualMachine.cc @@ -1686,7 +1686,15 @@ VectorAttribute * VirtualMachine::set_up_attach_disk( return 0; } - new_disk = new VectorAttribute(*(dynamic_cast(disks[0]))); + new_disk = dynamic_cast(disks[0]); + + if ( new_disk == 0 ) + { + error_str = "Internal error parsing DISK attribute"; + return 0; + } + + new_disk = new_disk->clone(); // ------------------------------------------------------------------------- // Acquire the new disk image