Prevent overflow by casting values to blkid_loff_t before applying block shift. Signed-off-by: Jeroen Oortwijn <oortwijn@xxxxxxxxx> --- shlibs/blkid/src/superblocks/befs.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/shlibs/blkid/src/superblocks/befs.c b/shlibs/blkid/src/superblocks/befs.c index b341402..c238bae 100644 --- a/shlibs/blkid/src/superblocks/befs.c +++ b/shlibs/blkid/src/superblocks/befs.c @@ -123,13 +123,13 @@ static int probe_befs(blkid_probe pr, const struct blkid_idmag *mag) return -1; bi = (struct befs_inode *) blkid_probe_get_buffer(pr, - (FS32_TO_CPU(bs->root_dir.allocation_group, fs_le) - << FS32_TO_CPU(bs->ag_shift, fs_le) - << FS32_TO_CPU(bs->block_shift, fs_le)) - + (FS16_TO_CPU(bs->root_dir.start, fs_le) - << FS32_TO_CPU(bs->block_shift, fs_le)), - FS16_TO_CPU(bs->root_dir.len, fs_le) - << FS32_TO_CPU(bs->block_shift, fs_le)); + ((blkid_loff_t)FS32_TO_CPU(bs->root_dir.allocation_group, fs_le) + << FS32_TO_CPU(bs->ag_shift, fs_le) + << FS32_TO_CPU(bs->block_shift, fs_le)) + + ((blkid_loff_t)FS16_TO_CPU(bs->root_dir.start, fs_le) + << FS32_TO_CPU(bs->block_shift, fs_le)), + (blkid_loff_t)FS16_TO_CPU(bs->root_dir.len, fs_le) + << FS32_TO_CPU(bs->block_shift, fs_le)); if (!bi) return -1; -- 1.6.3.3 -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html