diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0095-mtd-nand-fix-memory-leak-in-ONFI-extended-parameter-.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.10/0095-mtd-nand-fix-memory-leak-in-ONFI-extended-parameter-.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-3.10/0095-mtd-nand-fix-memory-leak-in-ONFI-extended-parameter-.patch b/target/linux/mvebu/patches-3.10/0095-mtd-nand-fix-memory-leak-in-ONFI-extended-parameter-.patch new file mode 100644 index 0000000000..5cb74f974a --- /dev/null +++ b/target/linux/mvebu/patches-3.10/0095-mtd-nand-fix-memory-leak-in-ONFI-extended-parameter-.patch @@ -0,0 +1,51 @@ +From 5d15281ca712cb873835e301937f3a8342e88d4b Mon Sep 17 00:00:00 2001 +From: Brian Norris <computersforpeace@gmail.com> +Date: Mon, 16 Sep 2013 17:59:20 -0700 +Subject: [PATCH 095/203] mtd: nand: fix memory leak in ONFI extended parameter + page + +This fixes a memory leak in the ONFI support code for detecting the +required ECC levels from this commit: + + commit 6dcbe0cdd83fb5f77be4f44c9e06c535281c375a + Author: Huang Shijie <b32955@freescale.com> + Date: Wed May 22 10:28:27 2013 +0800 + + mtd: get the ECC info from the Extended Parameter Page + +In the success case, we never freed the 'ep' buffer. + +Also, this fixes an oversight in the same commit where we (harmlessly) +freed the NULL pointer. + +Signed-off-by: Brian Norris <computersforpeace@gmail.com> +Acked-by: Huang Shijie <b32955@freescale.com> +Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> +--- + drivers/mtd/nand/nand_base.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +--- a/drivers/mtd/nand/nand_base.c ++++ b/drivers/mtd/nand/nand_base.c +@@ -2862,10 +2862,8 @@ static int nand_flash_detect_ext_param_p + + len = le16_to_cpu(p->ext_param_page_length) * 16; + ep = kmalloc(len, GFP_KERNEL); +- if (!ep) { +- ret = -ENOMEM; +- goto ext_out; +- } ++ if (!ep) ++ return -ENOMEM; + + /* Send our own NAND_CMD_PARAM. */ + chip->cmdfunc(mtd, NAND_CMD_PARAM, 0, -1); +@@ -2913,7 +2911,7 @@ static int nand_flash_detect_ext_param_p + } + + pr_info("ONFI extended param page detected.\n"); +- return 0; ++ ret = 0; + + ext_out: + kfree(ep); |