mtd: fix Coverity integer handling issue
authorMiquel Raynal <miquel.raynal@bootlin.com>
Sun, 18 Nov 2018 20:11:47 +0000 (21:11 +0100)
committerJagan Teki <jagan@amarulasolutions.com>
Fri, 12 Apr 2019 05:29:17 +0000 (10:59 +0530)
commit3f3aef4b9dc88278f31567fe6f26095fd9477b1a
treefe7d8bae12fc4f9a767982f343f4e6858f6d5d11
parenta55036b2786919996db6dcffd5f0a86d1077184b
mtd: fix Coverity integer handling issue

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.

Addresses-Coverity-ID: 184180 ("Integer handling issues")
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/mtdcore.c