UBI: fix overflow bug
authorVinit Agnihotri <vinit.agnihotri@gmail.com>
Tue, 10 Jul 2007 10:04:59 +0000 (13:04 +0300)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Wed, 18 Jul 2007 13:58:12 +0000 (16:58 +0300)
commitd08c3b78b8c46a01b8fa59037a0d9fbb777fb465
treec27d7d436864175107fe8e2b1de3a11b928c975a
parent2f3cdb55eef4fa1398965e893f731fb6e6312d34
UBI: fix overflow bug

I was experiencing overflows in multiplications for
volume->used_bytes in vmt.c & vtbl.c, while creating & resizing large volumes.

vol->used_bytes is long long however its 2 operands vol->used_ebs &
vol->usable_leb_size
are int. So their multiplication for larger values causes integer overflows.
Typecasting them solves the problem.

My machine & flash details:

64Bit dual-core AMD opteron, 1 GB RAM, linux 2.6.18.3.
mtd size = 6GB, volume size= 5GB, peb_size = 4MB.

heres patch which does the fix.

Signed-off-by: Vinit Agnihotri <vinit.agnihotri@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
drivers/mtd/ubi/vmt.c
drivers/mtd/ubi/vtbl.c