diff --git a/block/src/formats/qcow/internal/header.rs b/block/src/formats/qcow/internal/header.rs index 62b7a0773..f4b677788 100644 --- a/block/src/formats/qcow/internal/header.rs +++ b/block/src/formats/qcow/internal/header.rs @@ -250,7 +250,7 @@ impl QcowHeader { .map_err(Error::ReadingHeader)?; offset += data.len() as u64; let table = feature_table.as_mut().unwrap(); - for entry in data.chunks_exact(FEATURE_NAME_ENTRY_SIZE) { + for entry in data.as_chunks::().0 { if entry[0] == FEAT_TYPE_INCOMPATIBLE { let bit_number = entry[1]; let name_bytes = &entry[2..]; diff --git a/block/src/formats/qcow/internal/qcow_raw_file.rs b/block/src/formats/qcow/internal/qcow_raw_file.rs index 6ff411ee5..d1814c5e3 100644 --- a/block/src/formats/qcow/internal/qcow_raw_file.rs +++ b/block/src/formats/qcow/internal/qcow_raw_file.rs @@ -203,8 +203,10 @@ impl QcowRawFile { self.file.read_exact_at(&mut bytes, offset)?; let m = mask.unwrap_or(u64::MAX); let table = bytes - .chunks_exact(size_of::()) - .map(|c| u64::from_be_bytes(c.try_into().unwrap()) & m) + .as_chunks::<{ size_of::() }>() + .0 + .iter() + .map(|c| u64::from_be_bytes(*c) & m) .collect(); Ok(table) }