mirror of https://gitee.com/openkylin/qemu.git
qcow2: Use endof()
Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 20191011152814.14791-3-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
5d5b33c080
commit
d8fa8442ad
|
@ -92,11 +92,12 @@ int qcow2_read_snapshots(BlockDriverState *bs)
|
||||||
}
|
}
|
||||||
offset += extra_data_size;
|
offset += extra_data_size;
|
||||||
|
|
||||||
if (extra_data_size >= 8) {
|
if (extra_data_size >= endof(QCowSnapshotExtraData,
|
||||||
|
vm_state_size_large)) {
|
||||||
sn->vm_state_size = be64_to_cpu(extra.vm_state_size_large);
|
sn->vm_state_size = be64_to_cpu(extra.vm_state_size_large);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (extra_data_size >= 16) {
|
if (extra_data_size >= endof(QCowSnapshotExtraData, disk_size)) {
|
||||||
sn->disk_size = be64_to_cpu(extra.disk_size);
|
sn->disk_size = be64_to_cpu(extra.disk_size);
|
||||||
} else {
|
} else {
|
||||||
sn->disk_size = bs->total_sectors * BDRV_SECTOR_SIZE;
|
sn->disk_size = bs->total_sectors * BDRV_SECTOR_SIZE;
|
||||||
|
@ -251,7 +252,7 @@ static int qcow2_write_snapshots(BlockDriverState *bs)
|
||||||
}
|
}
|
||||||
|
|
||||||
QEMU_BUILD_BUG_ON(offsetof(QCowHeader, snapshots_offset) !=
|
QEMU_BUILD_BUG_ON(offsetof(QCowHeader, snapshots_offset) !=
|
||||||
offsetof(QCowHeader, nb_snapshots) + sizeof(header_data.nb_snapshots));
|
endof(QCowHeader, nb_snapshots));
|
||||||
|
|
||||||
header_data.nb_snapshots = cpu_to_be32(s->nb_snapshots);
|
header_data.nb_snapshots = cpu_to_be32(s->nb_snapshots);
|
||||||
header_data.snapshots_offset = cpu_to_be64(snapshots_offset);
|
header_data.snapshots_offset = cpu_to_be64(snapshots_offset);
|
||||||
|
|
Loading…
Reference in New Issue