block/iscsi: fix memory corruption on iscsi resize

bs->total_sectors is not yet updated at this point. resulting
in memory corruption if the volume has grown and data is written
to the newly availble areas.

CC: qemu-stable@nongnu.org
Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Peter Lieven 2014-08-22 10:08:49 +02:00 committed by Paolo Bonzini
parent a818a4b69d
commit 9db693f764

View File

@ -1512,7 +1512,8 @@ static int iscsi_truncate(BlockDriverState *bs, int64_t offset)
if (iscsilun->allocationmap != NULL) { if (iscsilun->allocationmap != NULL) {
g_free(iscsilun->allocationmap); g_free(iscsilun->allocationmap);
iscsilun->allocationmap = iscsilun->allocationmap =
bitmap_new(DIV_ROUND_UP(bs->total_sectors, bitmap_new(DIV_ROUND_UP(sector_lun2qemu(iscsilun->num_blocks,
iscsilun),
iscsilun->cluster_sectors)); iscsilun->cluster_sectors));
} }