summaryrefslogtreecommitdiff
path: root/drivers/mtd/parsers
diff options
context:
space:
mode:
authorYuan Can <yuancan@huawei.com>2022-12-08 11:36:20 +0000
committerMiquel Raynal <miquel.raynal@bootlin.com>2023-01-02 12:08:50 +0100
commit7adde5ac25fa50dbb1fb237042316685cafe976c (patch)
treeb516ffbd3bdb5a833513467f7160e7d22e9eaa30 /drivers/mtd/parsers
parent88603b6dc419445847923fcb7fe5080067a30f98 (diff)
mtd: parsers: Fix potential memory leak in mtd_parser_tplink_safeloader_parse()
The parts needs to be freed with all its elements, otherwise it will be leaked. Fixes: 00a3588084be ("mtd: parsers: add TP-Link SafeLoader partitions table parser") Signed-off-by: Yuan Can <yuancan@huawei.com> Reviewed-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20221208113620.78855-1-yuancan@huawei.com
Diffstat (limited to 'drivers/mtd/parsers')
-rw-r--r--drivers/mtd/parsers/tplink_safeloader.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mtd/parsers/tplink_safeloader.c b/drivers/mtd/parsers/tplink_safeloader.c
index f601e7bd8627..1c689dafca2a 100644
--- a/drivers/mtd/parsers/tplink_safeloader.c
+++ b/drivers/mtd/parsers/tplink_safeloader.c
@@ -91,7 +91,7 @@ static int mtd_parser_tplink_safeloader_parse(struct mtd_info *mtd,
buf = mtd_parser_tplink_safeloader_read_table(mtd);
if (!buf) {
err = -ENOENT;
- goto err_out;
+ goto err_free_parts;
}
for (idx = 0, offset = TPLINK_SAFELOADER_DATA_OFFSET;
@@ -118,6 +118,8 @@ static int mtd_parser_tplink_safeloader_parse(struct mtd_info *mtd,
err_free:
for (idx -= 1; idx >= 0; idx--)
kfree(parts[idx].name);
+err_free_parts:
+ kfree(parts);
err_out:
return err;
};