From ac97393dc7c4761af6104fb8fca5f600899f687b Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Wed, 25 Feb 2015 13:08:23 -0500 Subject: nbd: Fix potential signed overflow issues Signed-off-by: Max Reitz Message-Id: <1424887718-10800-11-git-send-email-mreitz@redhat.com> Signed-off-by: Paolo Bonzini --- qemu-nbd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'qemu-nbd.c') diff --git a/qemu-nbd.c b/qemu-nbd.c index 0c9e807a1a..a4a9a0cf37 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -142,8 +142,9 @@ static void read_partition(uint8_t *p, struct partition_record *r) r->end_head = p[5]; r->end_cylinder = p[7] | ((p[6] << 2) & 0x300); r->end_sector = p[6] & 0x3f; - r->start_sector_abs = p[8] | p[9] << 8 | p[10] << 16 | p[11] << 24; - r->nb_sectors_abs = p[12] | p[13] << 8 | p[14] << 16 | p[15] << 24; + + r->start_sector_abs = le32_to_cpup((uint32_t *)(p + 8)); + r->nb_sectors_abs = le32_to_cpup((uint32_t *)(p + 12)); } static int find_partition(BlockBackend *blk, int partition, -- cgit v1.2.3