Skip to content

Commit

Permalink
qcow2-rs: fix devide-by-zero on i386 arch
Browse files Browse the repository at this point in the history
Signed-off-by: Ming Lei <[email protected]>
  • Loading branch information
ming1 committed Sep 23, 2024
1 parent 0b69e85 commit 43a70e7
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions src/dev.rs
Original file line number Diff line number Diff line change
Expand Up @@ -218,10 +218,10 @@ impl Qcow2Info {
refcount_order: u8,
bs: usize,
) -> usize {
let rb_entries = cluster_size * 8 / (1 << refcount_order);
let rt_entry_size = rb_entries * cluster_size;
let rb_entries = (cluster_size as u64) * 8 / (1 << refcount_order);
let rt_entry_size = rb_entries * (cluster_size as u64);

let rc_table_entries = (size + rt_entry_size as u64 - 1) / rt_entry_size as u64;
let rc_table_entries = (size + rt_entry_size - 1) / rt_entry_size;
let rc_table_size =
((rc_table_entries as usize * std::mem::size_of::<u64>()) + bs - 1) & !(bs - 1);

Expand Down
4 changes: 2 additions & 2 deletions src/meta.rs
Original file line number Diff line number Diff line change
Expand Up @@ -650,8 +650,8 @@ impl Qcow2Header {
libc::memset((buf_start + l1_table.0) as *mut libc::c_void, 0, block_size);
}

let l2_entries = cluster_size / 8;
let size_per_l1_entry = (l2_entries << cluster_bits) as u64;
let l2_entries = (cluster_size as u64) / 8;
let size_per_l1_entry = l2_entries << cluster_bits;
let l1_entries = (size + size_per_l1_entry - 1) / size_per_l1_entry;

let mut h = Qcow2RawHeader {
Expand Down

0 comments on commit 43a70e7

Please sign in to comment.