mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
Fix probing of QED file format
The QED file format is non-versioned, so although the magic value matched, libvirt rejected it due to lack of a version number to compare against. We need to distinguish this case by allowing a value of '-2' to indicate a non-versioned file where only the magic is required to match Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
24643c780b
commit
32bef82a2d
@ -174,8 +174,8 @@ static struct FileTypeInfo const fileTypeInfo[] = {
|
||||
},
|
||||
[VIR_STORAGE_FILE_QED] = {
|
||||
/* http://wiki.qemu.org/Features/QED */
|
||||
"QED\0", NULL,
|
||||
LV_LITTLE_ENDIAN, -1, -1,
|
||||
"QED", NULL,
|
||||
LV_LITTLE_ENDIAN, -2, -1,
|
||||
QED_HDR_IMAGE_SIZE, 8, 1, -1, qedGetBackingStore,
|
||||
},
|
||||
[VIR_STORAGE_FILE_VMDK] = {
|
||||
@ -612,6 +612,10 @@ virStorageFileMatchesVersion(int format,
|
||||
if (fileTypeInfo[format].versionOffset == -1)
|
||||
return false;
|
||||
|
||||
/* -2 == non-versioned file format, so trivially match */
|
||||
if (fileTypeInfo[format].versionOffset == -2)
|
||||
return true;
|
||||
|
||||
if ((fileTypeInfo[format].versionOffset + 4) > buflen)
|
||||
return false;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user