diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-06-04 09:48:12 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-07-24 06:32:54 -0400 |
commit | abc5e92262d87f9c5c628492bffc55f81c7dcb80 (patch) | |
tree | ad33229247f99996dd875e68c10dcef9d1d40519 /drivers/mtd/ubi/build.c | |
parent | cadb40ccc16a26a738f1cbc963e35b21edd93e79 (diff) |
UBI: fix memory leak
ubi_free_volume() function sets ubi->volumes[] to NULL, so
ubi_eba_close() is useless, it does not free what has to be freed.
So zap it and free vol->eba_tbl at the volume release function.
Pointed-out-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/ubi/build.c')
-rw-r--r-- | drivers/mtd/ubi/build.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index ff4425de1527..7b42b4d05b3a 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c | |||
@@ -840,7 +840,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, int vid_hdr_offset) | |||
840 | out_uif: | 840 | out_uif: |
841 | uif_close(ubi); | 841 | uif_close(ubi); |
842 | out_detach: | 842 | out_detach: |
843 | ubi_eba_close(ubi); | ||
844 | ubi_wl_close(ubi); | 843 | ubi_wl_close(ubi); |
845 | vfree(ubi->vtbl); | 844 | vfree(ubi->vtbl); |
846 | out_free: | 845 | out_free: |
@@ -903,7 +902,6 @@ int ubi_detach_mtd_dev(int ubi_num, int anyway) | |||
903 | kthread_stop(ubi->bgt_thread); | 902 | kthread_stop(ubi->bgt_thread); |
904 | 903 | ||
905 | uif_close(ubi); | 904 | uif_close(ubi); |
906 | ubi_eba_close(ubi); | ||
907 | ubi_wl_close(ubi); | 905 | ubi_wl_close(ubi); |
908 | vfree(ubi->vtbl); | 906 | vfree(ubi->vtbl); |
909 | put_mtd_device(ubi->mtd); | 907 | put_mtd_device(ubi->mtd); |