UBI: fix kmem_cache_free on error patch
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Mon, 8 Jun 2009 16:28:18 +0000 (19:28 +0300)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Wed, 10 Jun 2009 13:13:27 +0000 (16:13 +0300)
'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>
drivers/mtd/ubi/wl.c

index f25ae29..acb5520 100644 (file)
@@ -826,7 +826,8 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
        err = schedule_erase(ubi, e1, 0);
        if (err) {
                kmem_cache_free(ubi_wl_entry_slab, e1);
-               kmem_cache_free(ubi_wl_entry_slab, e2);
+               if (e2)
+                       kmem_cache_free(ubi_wl_entry_slab, e2);
                goto out_ro;
        }