block: vhdx: restrict logical sector size to 512 bytes

cloud-hypervisor always advertises a 512-byte logical block size over
virtio-blk, so a 4096-byte-sector VHDx image could never be addressed
correctly. Reject it at metadata parse time, matching QEMU's VHDx
support.

Signed-off-by: Alexander Lvov <alexander.lvov.git@gmail.com>
This commit is contained in:
Alexander Lvov
2026-07-20 18:20:02 +03:00
committed by Rob Bradford
parent d414127b08
commit 8d6a38770f

View File

@@ -175,8 +175,7 @@ impl DiskSpec {
f.read_exact_at(&mut item, item_offset)
.map_err(VhdxMetadataError::ReadMetadata)?;
disk_spec.logical_sector_size = LittleEndian::read_u32(&item);
if !(disk_spec.logical_sector_size == 512 || disk_spec.logical_sector_size == 4096)
{
if disk_spec.logical_sector_size != 512 {
return Err(VhdxMetadataError::InvalidLogicalSectorSize);
}