• Miquel Raynal's avatar
    mtd: fix Coverity integer handling issue · 89f706db
    Miquel Raynal authored
    A Coverity robot reported an integer handling issue
    (OVERFLOW_BEFORE_WIDEN) in the potentially overflowing expression:
    
        (mtd_div_by_ws(mtd->size, mtd) - mtd_div_by_ws(offs, mtd)) *
        mtd_oobavail(mtd, ops)
    
    While such overflow will certainly never happen due to the numbers
    handled, it is cleaner to fix this operation anyway.
    
    The problem is that all the maths include 32-bit quantities, while the
    result is stored in an explicit 64-bit value.
    
    As maxooblen will just be compared with a size_t, let's change the
    type of the variable to a size_t. This will not fix anything but will
    clarify a bit the situation. Then, do an explicit cast to fix Coverity
    warning.
    Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
    89f706db
mtdcore.c 50.5 KB