[patch] mtd: nand: sunxi: prevent a small memory leak

Boris Brezillon boris.brezillon at free-electrons.com
Mon Jul 4 05:42:07 PDT 2016


On Fri, 24 Jun 2016 15:24:03 +0300
Dan Carpenter <dan.carpenter at oracle.com> wrote:

> 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 at oracle.com>

Applied.

Thanks,

Boris

> 
> diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
> index f582fe4..9f4e1c7 100644
> --- a/drivers/mtd/nand/sunxi_nand.c
> +++ b/drivers/mtd/nand/sunxi_nand.c
> @@ -1812,13 +1812,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;




More information about the linux-mtd mailing list