summaryrefslogtreecommitdiff
path: root/drivers/mtd/ubi/scan.c
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2007-05-03 12:59:51 +0400
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2007-07-18 17:52:13 +0400
commit341e1a0cf2d8965c8b2f7941a6b2f2c2170df469 (patch)
treeb0ad5795c32d16e8c198c6177d992a21fde20be5 /drivers/mtd/ubi/scan.c
parentcb32da0416b823b7f4b65e7e85d6cba16ca4d1e1 (diff)
downloadlinux-341e1a0cf2d8965c8b2f7941a6b2f2c2170df469.tar.xz
UBI: fix memory leak in checking code
Reported-by: Eric Sesterhenn / Snakebyte <snakebyte@gmx.de> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/ubi/scan.c')
-rw-r--r--drivers/mtd/ubi/scan.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c
index 473f3200b868..e4456869e753 100644
--- a/drivers/mtd/ubi/scan.c
+++ b/drivers/mtd/ubi/scan.c
@@ -1310,8 +1310,10 @@ static int paranoid_check_si(const struct ubi_device *ubi,
memset(buf, 1, ubi->peb_count);
for (pnum = 0; pnum < ubi->peb_count; pnum++) {
err = ubi_io_is_bad(ubi, pnum);
- if (err < 0)
+ if (err < 0) {
+ kfree(buf);
return err;
+ }
else if (err)
buf[pnum] = 0;
}