mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-03 20:15:45 +00:00
qcow: Reject files with compressed blocks early
Fixes: #3727 Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
6e101f479c
commit
592a65f52e
@ -516,6 +516,19 @@ impl QcowFile {
|
|||||||
|
|
||||||
let l2_entries = cluster_size / size_of::<u64>() as u64;
|
let l2_entries = cluster_size / size_of::<u64>() as u64;
|
||||||
|
|
||||||
|
// Check for compressed blocks
|
||||||
|
for l2_addr_disk in l1_table.get_values() {
|
||||||
|
if *l2_addr_disk != 0 {
|
||||||
|
if let Err(e) = Self::read_l2_cluster(&mut raw_file, *l2_addr_disk) {
|
||||||
|
if let Some(os_error) = e.raw_os_error() {
|
||||||
|
if os_error == ENOTSUP {
|
||||||
|
return Err(Error::CompressedBlocksNotSupported);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let mut qcow = QcowFile {
|
let mut qcow = QcowFile {
|
||||||
raw_file,
|
raw_file,
|
||||||
header,
|
header,
|
||||||
|
Loading…
Reference in New Issue
Block a user