mtd: nand: sunxi: prevent a small memory leak
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 24 Jun 2016 12:24:03 +0000 (15:24 +0300)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Mon, 11 Jul 2016 06:40:18 +0000 (08:40 +0200)
I moved the sanity check on ecc->size before the allocation so that we
don't leak memory on error.

Fixes: 05af074a4b73 ('mtd: nand: sunxi: check ecc->size values')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/nand/sunxi_nand.c

index d2b7457..e414b31 100644 (file)
@@ -1814,13 +1814,13 @@ static int sunxi_nand_hw_common_ecc_ctrl_init(struct mtd_info *mtd,
        int ret;
        int i;
 
+       if (ecc->size != 512 && ecc->size != 1024)
+               return -EINVAL;
+
        data = kzalloc(sizeof(*data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
 
-       if (ecc->size != 512 && ecc->size != 1024)
-               return -EINVAL;
-
        /* Prefer 1k ECC chunk over 512 ones */
        if (ecc->size == 512 && mtd->writesize > 512) {
                ecc->size = 1024;