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

From: Matthew Wilcox
Date: Sun Sep 26 2021 - 22:46:38 EST


On Mon, Sep 27, 2021 at 10:15:38AM +0800, Kefeng Wang wrote:
> 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.

> @@ -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");