diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2007-05-03 04:59:51 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2007-07-18 09:52:13 -0400 |
commit | 341e1a0cf2d8965c8b2f7941a6b2f2c2170df469 (patch) | |
tree | b0ad5795c32d16e8c198c6177d992a21fde20be5 /drivers/mtd/ubi/scan.c | |
parent | cb32da0416b823b7f4b65e7e85d6cba16ca4d1e1 (diff) |
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.c | 4 |
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, | |||
1310 | memset(buf, 1, ubi->peb_count); | 1310 | memset(buf, 1, ubi->peb_count); |
1311 | for (pnum = 0; pnum < ubi->peb_count; pnum++) { | 1311 | for (pnum = 0; pnum < ubi->peb_count; pnum++) { |
1312 | err = ubi_io_is_bad(ubi, pnum); | 1312 | err = ubi_io_is_bad(ubi, pnum); |
1313 | if (err < 0) | 1313 | if (err < 0) { |
1314 | kfree(buf); | ||
1314 | return err; | 1315 | return err; |
1316 | } | ||
1315 | else if (err) | 1317 | else if (err) |
1316 | buf[pnum] = 0; | 1318 | buf[pnum] = 0; |
1317 | } | 1319 | } |