UBI: fix some use after free bugs
PATCH 1/1 UBI: fix some use after free bugs
Move the kmem_cache_free() calls down a couple lines.
Signed-off-by Dan Carpenter <[email protected]>
drivers/mtd/ubi/fastmap.c +4 -4
@@ -463,8 +463,8 @@ static int scan_pool(struct ubi_device *ubi, struct ubi_attach_info *ai, } }if (found_orphan) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); } new_aeb = kmem_cache_alloc(ai->aeb_slab_cache,
@@ -846,16 +846,16 @@ fail_bad: ret =UBI_BAD_FASTMAP ; fail:list_for_each_entry_safe (tmp_aeb, _tmp_aeb, &used, u.list) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); }list_for_each_entry_safe (tmp_aeb, _tmp_aeb, &eba_orphans, u.list) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); }list_for_each_entry_safe (tmp_aeb, _tmp_aeb, &free, u.list) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); }return ret;
Am 29.01.2014 14:17, schrieb Dan Carpenter:
Quoted 3 lines
Move the
kmem_cache_free()calls down a couple lines.Signed-off-by Dan Carpenter <[email protected]>
Thanks for fixing this Dan!
Quoted 35 lines
drivers/mtd/ubi/fastmap.c +4
-4@@ -463,8 +463,8 @@ static int scan_pool(struct ubi_device *ubi, struct ubi_attach_info *ai, } }if (found_orphan) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); } new_aeb = kmem_cache_alloc(ai->aeb_slab_cache,@@ -846,16 +846,16 @@ fail_bad: ret =UBI_BAD_FASTMAP ; fail:list_for_each_entry_safe (tmp_aeb, _tmp_aeb, &used, u.list) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); }list_for_each_entry_safe (tmp_aeb, _tmp_aeb, &eba_orphans, u.list) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); }list_for_each_entry_safe (tmp_aeb, _tmp_aeb, &free, u.list) { -kmem_cache_free (ai->aeb_slab_cache, tmp_aeb);list_del (&tmp_aeb->u.list); +kmem_cache_free (ai->aeb_slab_cache, tmp_aeb); }return ret;
Artem Bityutskiy
AppliedQuoted 3 lines · Dan Carpenter
Move the
kmem_cache_free()calls down a couple lines.Signed-off-by Dan Carpenter <[email protected]>
Pushed to linux-ubifs.git, thanks!
I'll send this to Linus for 3.13 inclusion.
Signature · 2 lines
Best Regards, Artem Bityutskiy