Re: [PATCH 1/3] slab: check the return value of check_bytes_and_report()

From: Christoph Lameter (Ampere)
Date: Thu May 30 2024 - 11:30:45 EST


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.