summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Hunter <Adrian.Hunter@nokia.com>2009-07-24 17:05:00 +0300
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2009-07-24 20:08:52 +0300
commit7194e6f9c083e87171ddfc8b746f05e007f58132 (patch)
treedf883b3efd57a4389729989babc0ebb9739153d7
parent4be3bd7849165e7efa6b0b35a23d6a3598d97465 (diff)
downloadlinux-stable-7194e6f9c083e87171ddfc8b746f05e007f58132.tar.gz
linux-stable-7194e6f9c083e87171ddfc8b746f05e007f58132.tar.bz2
linux-stable-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>
-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;
}