Преглед изворни кода

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;
 	}
 	}