summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/ubi
diff options
context:
space:
mode:
authorAdrian Hunter <Adrian.Hunter@nokia.com>2009-07-24 16:05:00 +0200
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2009-07-24 19:08:52 +0200
commit7194e6f9c083e87171ddfc8b746f05e007f58132 (patch)
treedf883b3efd57a4389729989babc0ebb9739153d7 /drivers/mtd/ubi
parentLinux 2.6.31-rc4 (diff)
downloadlinux-7194e6f9c083e87171ddfc8b746f05e007f58132.tar.xz
linux-7194e6f9c083e87171ddfc8b746f05e007f58132.zip
UBI: fix double free on error path
If we fail in 'ubi_eba_init_scan()', we free 'ubi->volumes[i]->eba_tbl' in there, but also later free it in 'free_internal_volumes()'. Fix this by assigning NULL to 'ubi->volumes[i]->eba_tbl' after it is freed. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/ubi')
-rw-r--r--drivers/mtd/ubi/eba.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index 0f2034c3ed2f..e4d9ef0c965a 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -1254,6 +1254,7 @@ out_free:
if (!ubi->volumes[i])
continue;
kfree(ubi->volumes[i]->eba_tbl);
+ ubi->volumes[i]->eba_tbl = NULL;
}
return err;
}