Thread (8 messages) 8 messages, 3 authors, 2021-09-29

Re: [PATCH resend] slub: Add back check for free nonslab objects

From: Kefeng Wang <hidden>
Date: 2021-09-27 03:06:47
Also in: lkml

On 2021/9/27 10:42, Matthew Wilcox wrote:
On Mon, Sep 27, 2021 at 10:15:38AM +0800, Kefeng Wang wrote:
quoted
Commit ("0937502af7c9 slub: Add check for kfree() of non slab objects.")
add the ability, which should be needed in any configs to catch the
invalid free, they even could be potential issue, eg, memory corruption,
use after free and double-free, so replace VM_BUG_ON_PAGE to WARN_ON, and
add dump_page() to help use to debug the issue.
Is dump_page() really the best way to catch such a thing?  I would have
thought that printing the address of 'object' would be more helpful.
With no vmcore, dump_page() do help us to find a memory corruption issue.

We could add 'object ' address print too.
quoted
@@ -3522,7 +3522,8 @@ static inline void free_nonslab_page(struct page *page, void *object)
  {
  	unsigned int order = compound_order(page);
  
-	VM_BUG_ON_PAGE(!PageCompound(page), page);
+	if (WARN_ON(!PageCompound(page)))
+		dump_page(page, "invalid free nonslab page");
.
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help