On Tue, 28 May 2024, Chengming Zhou wrote:
diff --git a/mm/slub.c b/mm/slub.c index 0809760cf789..de57512734ac 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1324,9 +1324,10 @@ static int check_object(struct kmem_cache *s, struct slab *slab, } } else { if ((s->flags & SLAB_POISON) && s->object_size < s->inuse) { - check_bytes_and_report(s, slab, p, "Alignment padding", + if (!check_bytes_and_report(s, slab, p, "Alignment padding", endobject, POISON_INUSE, - s->inuse - s->object_size); + s->inuse - s->object_size)) + return 0; } }
This change means we will then skip the rest of the checks in check_object() such as the poison check.