imx: nandbcb: Fix resource leak in read_fcb
authorYe Li <ye.li@nxp.com>
Mon, 3 Aug 2020 05:43:45 +0000 (22:43 -0700)
committerStefano Babic <sbabic@denx.de>
Sat, 23 Jan 2021 10:30:31 +0000 (11:30 +0100)
Fix Coverity Issue 9006657. In read_fcb, leak of memory to system
resource "fcb_raw_page". Adjust the sequence to check the mtd bad
block prior than allocation of "fcb_raw_page", also check the NULL
return of allocation.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/mach-imx/cmd_nandbcb.c

index 6e50471..836981c 100644 (file)
@@ -503,13 +503,18 @@ static int read_fcb(struct boot_config *boot_cfg, struct fcb_block *fcb,
        int ret = 0;
 
        mtd = boot_cfg->mtd;
-       fcb_raw_page = kzalloc(mtd->writesize + mtd->oobsize, GFP_KERNEL);
-
        if (mtd_block_isbad(mtd, off)) {
                printf("Block %d is bad, skipped\n", (int)CONV_TO_BLOCKS(off));
                return 1;
        }
 
+       fcb_raw_page = kzalloc(mtd->writesize + mtd->oobsize, GFP_KERNEL);
+       if (!fcb_raw_page) {
+               debug("failed to allocate fcb_raw_page\n");
+               ret = -ENOMEM;
+               return ret;
+       }
+
        /*
         * User BCH hardware to decode ECC for FCB
         */