diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-06-08 12:28:18 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-06-10 09:13:27 -0400 |
commit | 21d08bbcb19d9cdef8ab5b584f25b50d842068e9 (patch) | |
tree | a50210d1fe832fa9273483a6f4ba42102d8c3828 /drivers/mtd/ubi/wl.c | |
parent | 52b605d107de72c1d3385a3df972e79fb5befa4c (diff) |
UBI: fix kmem_cache_free on error patch
'kmem_cache_free()' oopeses if NULL is passed, and there is
one error-path place where UBI may call it with NULL object.
This problem was pointed to by Adrian Hunter.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/ubi/wl.c')
-rw-r--r-- | drivers/mtd/ubi/wl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c index f25ae2910ad0..acb5520f7f3d 100644 --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c | |||
@@ -826,7 +826,8 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk, | |||
826 | err = schedule_erase(ubi, e1, 0); | 826 | err = schedule_erase(ubi, e1, 0); |
827 | if (err) { | 827 | if (err) { |
828 | kmem_cache_free(ubi_wl_entry_slab, e1); | 828 | kmem_cache_free(ubi_wl_entry_slab, e1); |
829 | kmem_cache_free(ubi_wl_entry_slab, e2); | 829 | if (e2) |
830 | kmem_cache_free(ubi_wl_entry_slab, e2); | ||
830 | goto out_ro; | 831 | goto out_ro; |
831 | } | 832 | } |
832 | 833 | ||