mtd: nand: Prevent dereference of NULL pointer
authorAndrew Goodbody <andrew.goodbody@linaro.org>
Tue, 1 Jul 2025 16:12:44 +0000 (17:12 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 28 Oct 2025 18:11:09 +0000 (12:11 -0600)
In nand_wait_ready there is a loop that includes a NULL check for
chip->dev_ready before it is dereferenced. Use a NULL check once the
loop is exited as well to cover the case where it exits due to a timeout
and it is therefore not known if chip->dev_ready is NULL or not.

This issue found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
drivers/mtd/nand/raw/nand_base.c

index d3d1b93..48e3685 100644 (file)
@@ -566,7 +566,7 @@ void nand_wait_ready(struct mtd_info *mtd)
                                break;
        }
 
-       if (!chip->dev_ready(mtd))
+       if (!chip->dev_ready || !chip->dev_ready(mtd))
                pr_warn("timeout while waiting for chip to become ready\n");
 }
 EXPORT_SYMBOL_GPL(nand_wait_ready);