From 0b344e7f111d845f9cbb8d284f62d546645c733e Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Mon, 14 Nov 2011 21:16:16 -0800 Subject: [PATCH] config_mbr: Fix integer overflow The values need to be converted to loff_t *before* performing the multiplication, else any sector offset past MAX_INT bytes will overflow. Change-Id: Ib8992f28aa4119ac7b4ad354b2448c4b0cfaf846 Signed-off-by: Andrew Boie --- libdiskconfig/config_mbr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libdiskconfig/config_mbr.c b/libdiskconfig/config_mbr.c index 703484c21..b89d382be 100644 --- a/libdiskconfig/config_mbr.c +++ b/libdiskconfig/config_mbr.c @@ -152,7 +152,7 @@ mk_ext_pentry(struct disk_info *dinfo, struct part_info *pinfo, uint32_t *lba, /* we are going to write the ebr at the current LBA, and then bump the * lba counter since that is where the logical data partition will start */ - item->offset = (*lba) * dinfo->sect_size; + item->offset = ((loff_t)(*lba)) * dinfo->sect_size; (*lba)++; ebr = (struct pc_boot_record *) &item->data;