Index: /trunk/src/VBox/Storage/VD.cpp
===================================================================
--- /trunk/src/VBox/Storage/VD.cpp	(revision 64710)
+++ /trunk/src/VBox/Storage/VD.cpp	(revision 64711)
@@ -7013,4 +7013,7 @@
                            ("cbSize=%llu\n", cbSize),
                            rc = VERR_INVALID_PARAMETER);
+        AssertMsgBreakStmt(!(cbSize % 512),
+                           ("cbSize=%llu\n", cbSize),
+                           rc = VERR_VD_INVALID_SIZE);
         AssertMsgBreakStmt(   ((uImageFlags & ~VD_IMAGE_FLAGS_MASK) == 0)
                            || ((uImageFlags & (VD_IMAGE_FLAGS_FIXED | VD_IMAGE_FLAGS_DIFF)) != VD_IMAGE_FLAGS_FIXED),
Index: /trunk/src/VBox/Storage/VDI.cpp
===================================================================
--- /trunk/src/VBox/Storage/VDI.cpp	(revision 64710)
+++ /trunk/src/VBox/Storage/VDI.cpp	(revision 64711)
@@ -1415,5 +1415,6 @@
     if (   !cbSize
         || cbSize >= _1P * 4 - _1M * 3
-        || cbSize < VDI_IMAGE_DEFAULT_BLOCK_SIZE)
+        || cbSize < VDI_IMAGE_DEFAULT_BLOCK_SIZE
+        || (cbSize % 512))
         return VERR_VD_INVALID_SIZE;
 
