瀏覽代碼

slub: Add check for kfree() of non slab objects.

We can detect kfree()s on non slab objects by checking for PageCompound().
Works in the same way as for ksize. This helped me catch an invalid
kfree().

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Christoph Lameter 17 年之前
父節點
當前提交
0937502af7
共有 1 個文件被更改,包括 1 次插入0 次删除
  1. 1 0
      mm/slub.c

+ 1 - 0
mm/slub.c

@@ -2766,6 +2766,7 @@ void kfree(const void *x)
 
 
 	page = virt_to_head_page(x);
 	page = virt_to_head_page(x);
 	if (unlikely(!PageSlab(page))) {
 	if (unlikely(!PageSlab(page))) {
+		BUG_ON(!PageCompound(page));
 		put_page(page);
 		put_page(page);
 		return;
 		return;
 	}
 	}