axlrose 发表于 2012-9-26 16:10:18

UBI: fix a horrible memory deallocation bug

本帖最后由 axlrose 于 2012-9-26 16:16 编辑

http://git.kernel.org/?p=linux/k ... 4ed3beeffbbff869285linux kernel 3.5.4 修复 UBI 内存释放的严重 BUG

diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
index 437bc19..568307c 100644 (file)
--- a/drivers/mtd/ubi/vtbl.c
+++ b/drivers/mtd/ubi/vtbl.c
@@ -340,7 +340,7 @@ retry:
         * of this LEB as it will be deleted and freed in 'ubi_add_to_av()'.
         */
      err = ubi_add_to_av(ubi, ai, new_aeb->pnum, new_aeb->ec, vid_hdr, 0);
-       kfree(new_aeb);
+       kmem_cache_free(ai->aeb_slab_cache, new_aeb);
      ubi_free_vid_hdr(ubi, vid_hdr);
      return err;

@@ -353,7 +353,7 @@ write_error:
                list_add(&new_aeb->u.list, &ai->erase);
                goto retry;
      }
-       kfree(new_aeb);
+       kmem_cache_free(ai->aeb_slab_cache, new_aeb);
out_free:
      ubi_free_vid_hdr(ubi, vid_hdr);
      return err;


TQ-ZQL 发表于 2012-9-27 09:44:09

多谢提醒!
页: [1]
查看完整版本: UBI: fix a horrible memory deallocation bug