mtd: rawnand: intel: check return value of devm_kasprintf()
authorYi Yang <yiyang13@huawei.com>
Thu, 19 Oct 2023 06:55:37 +0000 (06:55 +0000)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 27 Oct 2023 17:43:18 +0000 (19:43 +0200)
devm_kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure. Ensure the allocation was successful by
checking the pointer validity.

Fixes: 0b1039f016e8 ("mtd: rawnand: Add NAND controller support on Intel LGM SoC")
Signed-off-by: Yi Yang <yiyang13@huawei.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20231019065537.318391-1-yiyang13@huawei.com
drivers/mtd/nand/raw/intel-nand-controller.c

index cb5d88f42297b2a0b45188f8baec981bde4c7c3c..f0ad2308f6d50319cfd9e836503d9f27063c3aed 100644 (file)
@@ -619,6 +619,11 @@ static int ebu_nand_probe(struct platform_device *pdev)
        ebu_host->cs_num = cs;
 
        resname = devm_kasprintf(dev, GFP_KERNEL, "nand_cs%d", cs);
+       if (!resname) {
+               ret = -ENOMEM;
+               goto err_of_node_put;
+       }
+
        ebu_host->cs[cs].chipaddr = devm_platform_ioremap_resource_byname(pdev,
                                                                          resname);
        if (IS_ERR(ebu_host->cs[cs].chipaddr)) {
@@ -649,6 +654,11 @@ static int ebu_nand_probe(struct platform_device *pdev)
        }
 
        resname = devm_kasprintf(dev, GFP_KERNEL, "addr_sel%d", cs);
+       if (!resname) {
+               ret = -ENOMEM;
+               goto err_cleanup_dma;
+       }
+
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, resname);
        if (!res) {
                ret = -EINVAL;