Re: [PATCH v3] mm/slub: Fix incorrect interpretation of s->offset

From: Matthew Wilcox
Date: Wed Apr 29 2020 - 11:54:22 EST


On Wed, Apr 29, 2020 at 09:53:28AM -0400, Waiman Long wrote:
> As a result, echoing "1" into the validate sysfs file, e.g. of dentry,
> may cause a bunch of "Freepointer corrupt" error reports like the
> following to appear with the system in panic afterwards.
>
> [ 38.579769] =============================================================================
> [ 38.580845] BUG dentry(666:pmcd.service) (Tainted: G B): Freepointer corrupt
> [ 38.581948] -----------------------------------------------------------------------------

I might trim the timestamp and the === and --- from the commit message ...

> To fix it, use the check "s->offset == s->inuse" in the new helper
> function freeptr_outside_object() instead. Also add another helper function
> get_info_end() to return the end of info block (inuse + free pointer
> if not overlapping with object).
>
> Fixes: 3202fa62fb43 ("slub: relocate freelist pointer to middle of object")
> Signed-off-by: Waiman Long <longman@xxxxxxxxxx>

But the patch looks great.

Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>