mtd: docg3: Don't leak docg3->bbt in error path

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Tue Jun 23 10:59:08 PDT 2015


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=45c2ebd702a468d5037cf16aa4f8ea8d67776f6a
Commit:     45c2ebd702a468d5037cf16aa4f8ea8d67776f6a
Parent:     641c7925b6ec78466358b654c731050b4179e5f4
Author:     Richard Weinberger <richard at nod.at>
AuthorDate: Mon Jun 1 23:10:52 2015 +0200
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Tue Jun 16 18:58:47 2015 -0700

    mtd: docg3: Don't leak docg3->bbt in error path
    
    Signed-off-by: Richard Weinberger <richard at nod.at>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/devices/docg3.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c
index be5fb2b..486936b 100644
--- a/drivers/mtd/devices/docg3.c
+++ b/drivers/mtd/devices/docg3.c
@@ -1900,7 +1900,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
 
 	ret = 0;
 	if (chip_id != (u16)(~chip_id_inv)) {
-		goto nomem3;
+		goto nomem4;
 	}
 
 	switch (chip_id) {
@@ -1910,7 +1910,7 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
 		break;
 	default:
 		doc_err("Chip id %04x is not a DiskOnChip G3 chip\n", chip_id);
-		goto nomem3;
+		goto nomem4;
 	}
 
 	doc_set_driver_info(chip_id, mtd);
@@ -1919,6 +1919,8 @@ doc_probe_device(struct docg3_cascade *cascade, int floor, struct device *dev)
 	doc_reload_bbt(docg3);
 	return mtd;
 
+nomem4:
+	kfree(docg3->bbt);
 nomem3:
 	kfree(mtd);
 nomem2:



More information about the linux-mtd-cvs mailing list