mtd: always initialize 'stats' in struct mtd_oob_ops
authorMichał Kępień <kernel@kempniu.pl>
Wed, 29 Jun 2022 12:57:35 +0000 (14:57 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Wed, 21 Sep 2022 08:38:07 +0000 (10:38 +0200)
commit745df17906029cc683b8b5ac8bcb08f82860baff
tree7880199cc6c84d6715d0b6979fe7bdf5cc8cc576
parent65394169bdae073bfb2c6816f5bf095bd7d53e61
mtd: always initialize 'stats' in struct mtd_oob_ops

As the 'stats' field in struct mtd_oob_ops is used in conditional
expressions, ensure it is always zero-initialized in all such structures
to prevent random stack garbage from being interpreted as a pointer.

Strictly speaking, this problem currently only needs to be fixed for
struct mtd_oob_ops structures subsequently passed to mtd_read_oob().
However, this commit goes a step further and makes all instances of
struct mtd_oob_ops in the tree zero-initialized, in hope of preventing
future problems, e.g. if struct mtd_req_stats gets extended with write
statistics at some point.

Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20220629125737.14418-3-kernel@kempniu.pl
13 files changed:
drivers/mtd/inftlcore.c
drivers/mtd/mtdswap.c
drivers/mtd/nand/onenand/onenand_base.c
drivers/mtd/nand/onenand/onenand_bbt.c
drivers/mtd/nand/raw/nand_bbt.c
drivers/mtd/nand/raw/sm_common.c
drivers/mtd/nftlcore.c
drivers/mtd/sm_ftl.c
drivers/mtd/ssfdc.c
drivers/mtd/tests/nandbiterrs.c
drivers/mtd/tests/oobtest.c
drivers/mtd/tests/readtest.c
fs/jffs2/wbuf.c