• Vinit Agnihotri's avatar
    UBI: fix overflow bug · d08c3b78
    Vinit Agnihotri authored
    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: default avatarVinit Agnihotri <vinit.agnihotri@gmail.com>
    Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
    d08c3b78
vtbl.c 22.4 KB